用于获取所有帖子的最新修订状态的SQL查询

时间:2016-09-26 作者:The Unknown Dev

我正在将WordPress帖子数据导出到一个外部工具*中,我想编写一个查询,从wp_posts 表,但作为最新版本(即最新标题、内容等,但带有原始帖子ID)。

select * from wp_posts where post_parent = 0;
这让我得到了所有的原始帖子,但只在它们第一次创建时的状态下,没有考虑修改。然后我尝试了这样的东西。

select * from wp_posts where post_parent != 0 group by post_parent;
但这只给了我第一次修订,而不是最新版本。我想这也会排除那些从未修改过的帖子,这对我也不适用。

我正在考虑下一步加入表本身,看看是否可以将其过滤到最大值ID 对于给定的post_parent, 但我想知道,在我尝试之前,是否有人已经找到了解决方案。

我怎样才能得到所有的帖子,但应用了所有最新的修订?这必须是可能的,因为网站在显示帖子时会这样做。

所讨论的工具是Solr,因此如果您好奇的话,我想写一个查询来获取我想要索引的所有字段。

1 个回复
最合适的回答,由SO网友:The Unknown Dev 整理而成

多亏了@AhmedMahdi的评论,我想出了以下适合我的工作:

select * from wp_posts
where post_status = \'publish\'
order by post_modified desc;
where条件是删除我不关心的所有草稿或私人帖子的必要条件。