MYSQL,我想要的是这样的
update tablename
case fieldA
when value1 then set fieldX0=xxx,fieldX1=bbb,fieldX2=ccc ...
when value2 then set fieldY0=yyy,fieldY1=eee,fieldY2=fff ...
end
什么是正确且简单的语法?非常感谢。
最佳答案
应该这样写:
UPDATE tablename
SET fieldX = CASE WHEN fieldA = 'value1' THEN 'xxx' ELSE fieldX END,
fieldY = CASE WHEN fieldA = 'value2' THEN 'yyy' ELSE fieldY END
WHERE fieldA IN ('value1', 'value2');
注意:我这样写了ELSE
部分,因为ELSE
的默认值是NULL
如果 CASE
表达式的条件无效,那么这会将其设置为原始值而不是 NULL
值。
关于mysql 这个条件更新语句的正确语法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15740557/