2011-05-23 53 views

回答

1

我想你的意思是DELETE而不是DROPDROP只能刪除整個對象(例如TABLE)。如果你不擔心性能,你可以像

DELETE FROM mytable WHERE mytable_key NOT IN 
    (SELECT mytable_key FROM mytable WHERE some_or_another_condition); 

許多的DB允許,可能會表現得更好,如果你有這樣做頻繁的基礎上JOIN型語法。

+0

請問MYSQL有這樣的功能嗎? – Hamster 2011-05-23 20:12:25

+0

我不認爲這將在mysql中工作,因爲在同一語句(http://dev.mysql.com/doc/refman/5.1/en/delete.html)中刪除和從同一表中選擇的限制。 。但你可以通過做一個嵌套子查詢來解決它(參見http://bugs.mysql.com/bug.php?id=5037底部的示例): – davek 2011-05-23 20:18:23

+0

@davek你看起來是正確的:顯然在MySQL中它有必要爲子查詢提供別名。這是不合標準的。 OP的說明:davek的第二個鏈接顯示瞭解決方法。 – 2011-05-23 20:25:40

0

可怕的和通用的聲明......但是這會無論從任何表做...我就想到你居然會做一個生產表雖然...

從SomeTable哪裏都不刪除(一些條件)

相關問題