Mysql
 sql >> Database >  >> RDS >> Mysql

mysql qual è la sintassi corretta per questa istruzione di aggiornamento condizionale

Dovrebbe essere scritto in questo modo:

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

Nota che: Ho scritto ELSE parte in questo modo, perché l'impostazione predefinita per ELSE è NULL se la condizione del CASE espressione non è valida, quindi questo lo imposterà sul valore originale non su NULL valore.