2

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

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

4

1 回答 1

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是这样写的,因为默认ELSENULL如果CASE表达式的条件无效,所以这会将它设置为原始值而不是NULL值。

于 2013-04-01T09:09:06.473 回答