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

use*_*789 2 mysql sql case sql-update

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
Run Code Online (Sandbox Code Playgroud)

什么是正确而简单的语法?非常感谢你.

Mah*_*mal 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'); 
Run Code Online (Sandbox Code Playgroud)

请注意:我以ELSE这种方式编写了部分,因为如果表达式的条件无效,则默认为ELSEis ,因此这将把它设置为原始值而不是值.NULLCASENULL