当条件基于一列时,我可以使用IN,AND或OR,但如果条件基于两列,那么如何编写查询?例如,我需要在以下行中将第1列的值设置为NULL:第2列='红色' AND列3 ='星期一',第2栏='黄色'第3列='星期二' '红色'或者'黄色'在第2列中并不是唯一的,对于' Monday'和'星期二'我需要更新很少的行。如何在一个查询中执行此操作?谢谢!
column1 column2 column3
1 red Monday
2 red Tuesday
3 yellow Monday
4 yellow Tuesday
5 green Wednesday
结果如下:
column1 column2 column3
NULL red Monday
2 red Tuesday
3 yellow Monday
NULL yellow Tuesday
5 green Wednesday
答案 0 :(得分:1)
WHERE
子句归结为一个简单的真/假值:true
- 行匹配,所以做一些事情。 false
- 不匹配,不做任何事。
如果您有多个独立条件,那么
WHERE (condition1) OR (condition2) OR ...
每个子条件都可以根据需要任意复杂/简单,包括拥有自己的in
子句:
WHERE (foo IN ('a','b','c')) OR (bar IN ('p','q', 'r')) OR (baz = 42)
答案 1 :(得分:1)
UPDATE yourTable SET column1 = NULL WHERE (column2 = 'red' AND column3 = 'Monday') OR (column2 = 'yellow' AND column3 = 'Tuesday')