2012-04-28 174 views
2

當我執行此查詢:刪除所有行除了

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

我收到以下錯誤信息:

不能指定用於更新目標表「wp_posts」 FROM子句

不確定這裏的語法問題。

+1

問題是,在DELETE中你不能在子查詢中使用同一個表。處理查詢的方式會導致未定義的行爲(如果允許)。 – Polynomial 2012-04-28 17:50:30

+0

gee,我希望錯誤信息能夠清楚地說明...虛擬的錯誤消息? – keruilin 2012-04-28 17:52:44

回答

11

這可以在不使用子查詢的情況下完成。請嘗試以下操作

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

啊,是的,我試過這種方法,但得到了!=語法錯誤......謝謝! – keruilin 2012-04-28 17:51:33

+0

不客氣! – 2012-04-28 17:51:59