我想根据值更新 MySQL 表中的多个单元格。
我发现如果我选择一个名为 engagement 的字段,我可以像这样一次更新一个:
UPDATE billing_info_test
SET Engagement='800000039768'
WHERE Engagement IS NULL and LinkedAccountId = '12345678910'
但是,如果我尝试一次执行多个操作,它会失败并且出现错误:
UPDATE billing_info_test
SET Engagement='800000039768'
WHERE Engagement IS NULL and LinkedAccountId = '12345678910'
AND SET Engagement='800000039768'
WHERE Engagement IS NULL and LinkedAccountId = '3542123267612';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET Engagement='800000039768' WHERE Engagement IS NULL and LinkedAccountId = '30' at line 1
在这些语句之间使用 AND 是不正确的吗?我究竟做错了什么?
最佳答案
您可以使用 CASE 语句来完成:
UPDATE billing_info_test
SET
Engagement = CASE
WHEN LinkedAccountId = '12345678910' THEN 'something'
WHEN LinkedAccountId = '3542123267612' THEN 'somethingelse'
WHEN LinkedAccountId IN ('354', '123', '000') THEN 'somethingelsetoo'
ELSE 'default'
END
WHERE Engagement IS NULL
关于mysql - 根据单元格值更新 MySQL 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56656933/