Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql, was ist die richtige Syntax für diese bedingte Aktualisierungsanweisung

Es sollte so geschrieben werden:

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

Beachten Sie Folgendes: Ich habe den ELSE geschrieben Teil auf diese Weise, weil die Vorgabe für den ELSE ist NULL wenn die Bedingung des CASE Ausdruck ist nicht gültig, daher wird er auf den ursprünglichen Wert gesetzt, nicht auf NULL Wert.