使用多个条件在SQL中删除

时间:2017-09-05 21:43:44

标签: sql sql-delete

有些背景,我有一个char(6)的代码列。在此字段中,我的值为0,00,000,0000,000000,000000。这似乎是不合逻辑的但是它是怎么回事。我需要做的是删除拥有这些代码值的所有行。我知道如何单独这样做

delete from [dbo.table] where code='0'
delete from [dbo.table] where code='00'

等等。

如何执行这一段代码而不是6

3 个答案:

答案 0 :(得分:1)

试试这个:

delete from [dbo.table] where code='0'
                           or code='00'
                           or code='000'

等。你明白了。

当一组vales变大时,可以有更有效的方法,但你的5或6值仍然是相当的方式。

<强>更新

如果您的列表变长,或者您的表格明显大于可以驻留在缓存中的表格,您可能会通过将选择值存储到索引临时表并加入其中来获得显着的性能提升。

答案 1 :(得分:1)

这在很大程度上取决于您的DBMS,但我建议使用正则表达式。例如,使用MySQL,您只需要这样的简单查询:

delete from dbo.table where code regexp '(0+)'

对于大多数流行的DBMS,您可以这样做,但语法可能是各种各样的

答案 2 :(得分:0)

我现在无法测试,但以下情况应该有效:

angular.js

编辑 - 想到另一种方式,那应该更安全:

DELETE FROM dbo.table WHERE CONVERT(int, code) = 0