mysql这个条件更新语句的正确语法是什么

时间:2013-04-01 09:07:06

标签: mysql sql sql-update case

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

它的正确和简单语法是什么?非常感谢你。

1 个答案:

答案 0 :(得分:6)

应该这样写:

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部分,因为如果{{1}的条件,ELSE的默认值为NULL } expression无效,因此这会将其设置为原始值而不是CASE值。