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

MySQL Aktualisieren Sie mehrere Zeilen in einer einzelnen Spalte basierend auf Werten aus derselben Spalte

Sie sollten die Werte wahrscheinlich nicht nur basierend auf dem Wert von value aktualisieren sondern auf dem Wert von key , andernfalls könnten Sie „m“ auf „männlich“ aktualisieren, wenn der Schlüssel „shirt-size“ ist.

UPDATE `DemoGroup` 
SET `value` = CASE 
    WHEN (`key`, `value`) = ('gender', 'm') THEN 'male'
    WHEN (`key`, `value`) = ('gender', 'f') THEN 'female'
    WHEN (`key`, `value`) = ('age', '10')   THEN '10-19'
    WHEN (`key`, `value`) = ('age', '80')   THEN '80-89'
    ELSE `value` -- no-op for other values
  END 
WHERE `key` IN ('gender','age');