mysql - 使用多个 OR 语句更新
问题描述
我要对数据库进行大量更改。
有问题的记录有一个“状态”列,只有当某些状态没有记录时,我才需要更新它。
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 语句。但是,如果我执行它然后运行我之前的选择语句
status,source_id
SUPR,3791775X
即使我的 OR 语句应该阻止这种情况,该字段也已更新?
我显然遗漏了一些东西,我该如何在这个语句中添加多个 OR 语句?
解决方案
而不是OR
你想使用AND
. 例如,如果状态是'ASUPP'
,则不是'ADC'
。那是一场比赛,并且该行得到更新。
另一种可能性是使用:
status NOT IN ('ASUPP',
'ADC')
旁注:最好使用单引号将字符串括起来,以与标准和其他 DBMS 兼容。
推荐阅读
- powerbi - 根据另一个表中的度量查找列中的值
- r - 使用 dplyr 标记区域
- javascript - 在 Javascript 中设置样式更改事件侦听器
- scala - 协变类型 E 出现在类型 A 的逆变位置 => returnerror.Error[E,B] of value f
- tableau-api - 在 Tableau 中如何更改参数中的日历日期格式?
- javascript - 将变量传递到其他页面并执行 if 条件函数
- android - 如何在 Android 上的 Kotlin 类中使用上下文
- jpa - 范式和映射表
- sql - 可以在 SQL 中有效地表达列中重复元素的条件吗?
- go - 使用命名返回类型时未使用变量