2011-05-23 26 views

答えて

1

DELETEだと思いますが、DROPではありません。 DROPは、オブジェクト全体(TABLEなど)のみを消去できます。あなたは、パフォーマンスを心配していない場合、あなたは頻繁にこれをしなければならない場合は、おそらくより良い実行されますJOIN型構文を許可

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

多くのDBのようなものを持つことができます。

+0

MYSQLにはこのような機能がありますか? – Hamster

+0

私は同じステートメント(http://dev.mysql.com/doc/refman/5.1/en/delete.html)の同じテーブルからの削除と選択の制限のためにmysqlで動作するとは思わないが、 。しかし、ネストされたサブセレクトを実行することで回避することができます(http://bugs.mysql.com/bug.php?id=5037の一番下にある例を参照)。 – davek

+0

@davek正しいと思われます。明らかにMySQL itサブクエリのエイリアスに必要です。それは不良です。 OPへの注記:davekの2番目のリンクが回避策を示しています。 –

0

怖いと一般的な文...しかし、これはどのようなテーブルから行います...私はあなたが実際にかかわらず、生産テーブルにやるとは思っていませんでしょう...

はNOT(SomeTableからいくつかの条件を削除)

関連する問題