sql >> Base de Datos >  >> RDS >> Mysql

mysql cuál es la sintaxis correcta para esta declaración de actualización condicional

Debe escribirse de esta manera:

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'); 

Tenga en cuenta que: Escribí el ELSE parte de esta manera, porque el valor predeterminado para ELSE es NULL si la condición del CASE expresión no es válida, por lo que esto lo establecerá en el valor original, no en el NULL valor.