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

mysql hvad er den rigtige syntaks for denne betingede opdateringserklæring

Det skal skrives på denne måde:

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

Bemærk at: Jeg skrev ELSE del på denne måde, fordi standarden for ELSE er NULL hvis betingelsen for CASE udtrykket er ikke gyldigt, så dette vil sætte det til den oprindelige værdi og ikke til NULL værdi.




  1. Postgres:Tilføj begrænsning, hvis den ikke allerede eksisterer

  2. Cloud Vendor Deep-Dive:PostgreSQL på Microsoft Azure

  3. SQLAlchemy sæt medlemskab for meget store sæt

  4. Devise Admin Rolle:PG::Fejl:FEJL:Relationsadministratorer findes allerede