mysql根据另一个3列值更新同一个表中一列的值

时间:2018-01-01 10:00:42

标签: mysql

如果value2,value3,value4为null,我想在value1中设置null,其中id = 1.如果value2,value3,value4不为null,则保留value1 / not set null我的表看起来像:

Table: students
id|value1|value2|value3|value4|
-------------------------------
1 |value | NULL | NULL | NULL |
-------------------------------
2 |value | value | NULL | NULL|

我希望它像这张表:

Table: students
id|value1|value2|value3|value4|
-------------------------------
1 | Null | NULL | NULL | NULL |
-------------------------------
2 |value | value | NULL | NULL|

我试试

 UPDATE students SET value1 = NULL WHERE students.id = 1 AND value2 = value3 = value4 IS NULL

2 个答案:

答案 0 :(得分:1)

你应该juse几个AND是null

UPDATE students 
SET value1 = NULL 
WHERE students.id = 1 
AND ( value2 IS NULL AND value3 IS NULL AND value4 IS NULL) 

答案 1 :(得分:0)

您正在寻找以下之一。取决于你需要什么。

UPDATE students SET value1 = NULL WHERE (value2 IS NULL OR value3 IS NULL OR value4 IS NULL) AND students.id = 1

或者

UPDATE students SET value1 = NULL WHERE (value2 IS NULL AND value3 IS NULL AND value4 IS NULL) AND students.id = 1

使用第一个如果value1将为null,如果其他任何一个为null,则使用第二个,如果其他所有其他值必须为null,则value1可以为null。