3

post_title で wordpress データベースをクリーンアップするための SQL が必要です。

たとえば、次の例では、タイトルに「apple」という単語が含まれるすべての投稿を wordpress から検索します。

SELECT * FROM wp_posts WHERE post_title LIKE '%apples%';

そして、これはそれらの同じ投稿を削除します:

DELETE FROM wp_posts WHERE post_title LIKE '%apples%';

ただし、 wp_posts テーブルとの関係がわからないため、他のテーブルのすべての参照をタイトルで削除する方法がうまくいったかどうかはわかりません。「apple」を含む投稿を削除した後、次の方法で postmeta から投稿に関連する行を削除できると思います。

DELETE FROM wp_postmeta WHERE NOT EXISTS (SELECT * FROM wp_posts WHERE wp_postmeta.post_id = wp_posts.ID)

最初の SQL コマンドの後、 wp_posts テーブルとの関係のない行が wp_postmeta にあり、その行が削除されるため、これは機能するはずです。単純。

しかし、wp_posts と wp_terms、wp_term_relationships、または wp_term_taxonomy の間の関係がわからないため (最初のクエリによって影響を受ける可能性のある他のテーブルに加えて)、カテゴリとタグの参照を削除する方法がわかりません。

誰かがここで私を助けることができますか?

ご検討いただきありがとうございます。

4

1 に答える 1

0

DB がカスケードをサポートしている場合は、それを使用してください。あなたが提案した DELETE SQL、またはそれに類似したものは、ラストガスプのものです。結合データを保持する列名が名前を共有しないのはよくあることです。他のテーブルに tablename.post_id がないことは当然のことです。

于 2012-07-17T23:02:05.920 に答える