2011-05-23 42 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哪里都不删除(一些条件)

相关问题