如何在SQL中删除多个值?

时间:2013-02-04 16:55:09

标签: sql oracle

我知道如何使用以下语句删除一组行:

DELETE FROM my_table WHERE id=23 AND year=2012 AND value=16
DELETE FROM my_table WHERE id=17 AND year=2012 AND value=16
DELETE FROM my_table WHERE id=64 AND year=2012 AND value=16

但我想将上述三个语句组合成一个DELETE,其中id为23,17或64.

在Oracle SQL中执行此操作的语法是什么?

4 个答案:

答案 0 :(得分:9)

您可以使用SQL IN关键字。例如:

DELETE FROM my_table WHERE id IN (23, 17, 64) AND year=2012 AND value=16

注意: Oracle在列表中限制为1,000个项目。

答案 1 :(得分:5)

DELETE FROM my_table 
WHERE id in (17, 23, 64) AND year=2012 AND value=16

答案 2 :(得分:3)

您可以链接AND/OR条件以达到相同的效果。在这种情况下,简单的IN可以解决您的目的。

DELETE FROM my_table WHERE id IN (23, 17, 64) AND year=2012 AND value=16

答案 3 :(得分:1)

怎么样:

DELETE FROM my_table WHERE (id=23 or id=17 or id=64) AND year=2012 AND value=16