2012-04-28 3 views
2

を除くすべての行を削除します。私はこのクエリを実行すると

DELETE FROM `wp_posts` WHERE id NOT IN 
    (SELECT id FROM wp_posts WHERE post_status = 'publish') 

私は、次のエラーメッセージが出ます:あなたが句

から更新のターゲット表「wp_posts」を指定することはできません

ここでの構文の問題はわかりません。

+1

問題は、 'DELETE'中にサブクエリに同じテーブルを持つことができないということです。クエリが処理される方法は、許可されていれば未定義の動作を引き起こします。 – Polynomial

+0

ええ、私はエラーメッセージがそれを明らかに言うことを望みます...ダミーのエラーメッセージ? – keruilin

答えて

11

これは、サブクエリを使用せずに行うことができます。以下を試してください

DELETE FROM 'wp_posts' WHERE post_status != 'publish' 
+0

ああ、はい、私はそのアプローチを試みましたが、!=構文が間違っています...ありがとう! – keruilin

+0

よろしくお願いいたします。 –

関連する問題