繁体   English   中英

用多个OR语句更新

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM