MySQL SET IF语句

H. *_*nce 3 mysql if-statement

有人可以告诉我正确的mysql语法来执行以下操作:

使用3个值中的1个更新表中的列:

如果col_A = 4,则将col_Z设置为col_A如果col_B = 4,则将col_Z设置为col_B否则将col_Z设置为NULL(或单独保留,因为col_Z初始化为NULL)

这就是我所拥有的:

Update my_table
SET col_Z = IF(col_A = 4, col_A, IF(col_B = 4, col_B, NULL))
WHERE id = "001"
Run Code Online (Sandbox Code Playgroud)

它是否正确?

Joh*_*ica 17

是的,它看起来是正确的.

以下代码会更简单.

UPDATE my_table
SET col_Z = IF(col_A = 4 OR col_B = 4, 4, NULL)
WHERE id = "001"
Run Code Online (Sandbox Code Playgroud)