mysql - 使用 SQL 查询以 CSV 格式导出 WordPress 帖子和元信息

标签 mysql sql wordpress csv

抱歉,这是一个 duplicate of entry of this post但我发现我在那里没有得到正确的答案,并且不确定如何要求将其移至 SO?

我需要使用 CSV 格式的 SQL 查询导出所有 WordPress 帖子和相关元信息。我设法只导出了帖子,但意识到元信息在另一个表中。

有人可以告诉我我将如何去做吗?

谢谢!

编辑:我已经尝试过许多插件,但没有一个适用于这种特定情况。我确实需要处理查询本身。谢谢

编辑:CSV 文件的最终结果应如下所示。在一行中,这些是我将最终得到的列。 (我会删除 CSV 中的额外列,我只是在这里给出一个缩短的版本)

post_content | post_title | **meta_key** | *meta_value* | **meta_key** | *meta_value* | **meta_key** | *meta_value* | **meta_key** | *meta_value* | **meta_key** | *meta_value* 

因此每行一个帖子,元信息在同一行。

编辑:通过 S-ha-dum,我设法找到了一些方法,但是我有大约 12 个 meta_value > meta_key 值要从数据库中提取出来,所以我需要帮助来编写其余的请查询

SELECT *,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Publisher' AND wp_postmeta.post_id = wp_posts.ID) as Publisher FROM wp_posts

最佳答案

一位 friend 最终设法帮助我解决了问题。这是他将所有带有元信息的帖子导出到 CSV 文件的最后一个 SQL 查询。

SELECT DISTINCT
post_title
, post_content
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Asking Price (US\$)' AND wp_postmeta.post_id = wp_posts.ID) as "Asking Price (US\$)"
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Asking Price (ZAR)' AND wp_postmeta.post_id = wp_posts.ID) as "Asking Price (ZAR)"
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Author' AND wp_postmeta.post_id = wp_posts.ID) as Author
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Binding' AND wp_postmeta.post_id = wp_posts.ID) as Binding
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Book Condition' AND wp_postmeta.post_id = wp_posts.ID) as "Book Condition" 
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Book Number' AND wp_postmeta.post_id = wp_posts.ID) as "Book Number" 
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Book Type' AND wp_postmeta.post_id = wp_posts.ID) as "Book Type"
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Edition' AND wp_postmeta.post_id = wp_posts.ID) as  Edition
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Illustrator' AND wp_postmeta.post_id = wp_posts.ID) as Illustrator 
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Inscription' AND wp_postmeta.post_id = wp_posts.ID) as Inscription 
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'ISBN' AND wp_postmeta.post_id = wp_posts.ID) as  ISBN
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Jacket Condition' AND wp_postmeta.post_id = wp_posts.ID) as "Jacket Condition"
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Location' AND wp_postmeta.post_id = wp_posts.ID) as  Location
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Published Place' AND wp_postmeta.post_id = wp_posts.ID) as "Published Place"
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Published Year' AND wp_postmeta.post_id = wp_posts.ID) as "Published Year" 
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Publisher' AND wp_postmeta.post_id = wp_posts.ID) as Publisher 
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Size' AND wp_postmeta.post_id = wp_posts.ID) as Size
FROM wp_posts
WHERE post_type = 'post' 
ORDER BY
post_title
, post_content

感谢大家的参与!

关于mysql - 使用 SQL 查询以 CSV 格式导出 WordPress 帖子和元信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12855854/

相关文章:

sql - 如何在 Teradata 中使用 SELECT 语句在数据库之间传输数据

java - CSV 到 MySQl 导入

mysql - 如何在rails中获得默认排序规则?

wordpress - WordPress 多站点上的 SSL - 仅一个站点

wordpress - 删除的页面爬取失败,出现 404

Eclipse Kepler Tomcat 7 中的 MySQL jdbc 连接

php - 获取 PHP 的 SQLite 查询结果

MySQL 和 PHP 错误

php - 为什么 PDO debugDumpParams 截断查询

javascript - Wordpress 有条件地加载一个缩小的脚本