Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql quelle est la bonne syntaxe pour cette instruction de mise à jour conditionnelle

Il devrait être écrit de cette façon :

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

Notez que : J'ai écrit le ELSE partie de cette façon, car la valeur par défaut pour le ELSE est NULL si la condition du CASE l'expression n'est pas valide, donc cela la définira sur la valeur d'origine et non sur le NULL évaluer.