mysql基于另一个3列值更新同一表中一列的值

rdlzhqv9  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(389)

如果value2,value3,value4在id=1时为null,我想在value1中设置null。如果value2、value3、value4不为null,则保持value1/不设置null我的表如下所示:

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

我想要这张table:

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
1mrurvl1

1mrurvl11#

你应该突出几个并且是空的

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

qpgpyjmq2#

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

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为空,则使用第一个;如果其他任何值为空,则使用第二个;如果所有其他值都需要为空,则value1才能为空。

相关问题