删除列表中的id

时间:2010-04-11 00:19:02

标签: sql database-design

如果我有一个Ids(1,4,6,7)列表和一个db表,我想删除id在这个列表中的所有记录,那么最快的方法是什么?

3 个答案:

答案 0 :(得分:134)

您的问题几乎可以解释SQL:

DELETE FROM table WHERE id IN (1, 4, 6, 7)

答案 1 :(得分:10)

delete from t
where id in (1, 4, 6, 7)

答案 2 :(得分:-5)

正确答案是速度取决于您正在使用的特定实现/引擎的特性,并且您应该注意任何假装能够对此问题给出明确答案的庸医。

如果您的系统的优化器太差,以至于它没有从'WHERE id IN(...)'中发现优化机会,那么它将进行表扫描,这可能比给出4个单独扫描慢得多删除命令。