[英]update with multiple OR statements
我对数据库进行了大量更改。
有问题的记录具有“状态”列,仅当未记录某些状态时才需要更新。
select `status`,`source_id` from vicidial_list where list_id = "444662" and source_id = "3791775X"
回报
status,source_id
ADC,3791775X
ADC是我更新期间应忽略的状态
如果我跑
update `db`.`vicidial_list` set `status`='SUPR' where list_id = "444662" and source_id = "3791775X" and `status` != "ADC"
这有效,状态值不会更新。 但是,我有多种状态需要忽略,因此我需要运行
update `db`.`vicidial_list` set `status`='SUPR' where list_id = "444662" and source_id = "3791775X" and `status` != "ASUPP" OR `status` != "ADC"
这之后有多个OR语句。 但是,如果我执行该命令,然后运行我之前的select语句
status,source_id
SUPR,3791775X
即使我的OR语句应阻止此情况,该字段也已更新?
我显然丢失了一些东西,如何向该语句添加多个OR语句?
您想使用AND
来代替OR
。 例如,如果状态为'ASUPP'
,则不是'ADC'
。 这是匹配项,并且该行将更新。
另一种可能性是使用:
status NOT IN ('ASUPP',
'ADC')
旁注:最好在字符串中使用单引号,以与标准和其他DBMS兼容。
您可能需要使用AND
而不是OR
update `db`.`vicidial_list` set `status`='SUPR'
where list_id = "444662" and source_id = "3791775X"
and `status` != "ASUPP" and `status` != "ADC"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.