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

MySQL Aggiorna più righe su una singola colonna in base ai valori di quella stessa colonna

Probabilmente dovresti aggiornare i valori in base non solo al valore di value ma sul valore di key , altrimenti potresti aggiornare 'm' in 'male' quando la chiave è 'shirt-size'.

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