web-dev-qa-db-ja.com

すべての投稿を最新の改訂状態にするためのSQLクエリ

私はWordPressの投稿データを外部ツール*にエクスポートしています。現在公開されている投稿をwp_postsテーブルから最新のリビジョン(つまり最新のタイトル、コンテンツなど、オリジナルのもの)として取得するクエリを書きたいと思います。投稿のID)。

select * from wp_posts where post_parent = 0;

これは私にすべてのオリジナルの投稿を取得しますが、それらが最初に作成されたときの状態のみで、リビジョンを考慮に入れません。それから私はこのようなことを試しました。

select * from wp_posts where post_parent != 0 group by post_parent;

しかし、これは私に最初のリビジョンを与えるだけで最新ではありません。改訂されなかった投稿も除外されると思いますが、これも私にとってはうまくいきません。

次にテーブルを結合することを考えていて、与えられたpost_parentに対してmax IDまでフィルタリングできるかどうかを検討していましたが、それを試す前に誰かがすでに解決策を持っているかどうか知りたいと思いました。

最新のリビジョンをすべて適用した状態で、すべての投稿を取得する方法を教えてください。サイトが投稿を表示するときにするのでそれは可能でなければなりません。


*問題となっているツールはSolrなので、あなたが興味を持っているなら、私はインデックスを付けたいすべてのフィールドを得るためにクエリを書くことを探しています。

1
Kimberly W

@ AhmedMahdiのコメントのおかげで、私は自分の状況に合わせて以下の作品を考え出しました。

select * from wp_posts
where post_status = 'publish'
order by post_modified desc;

私が関係していないドラフトまたは私的な投稿をすべて削除するには、where条件が必要です。

1
Kimberly W