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

MySQL met à jour plusieurs lignes sur une seule colonne en fonction des valeurs de cette même colonne

Vous devriez probablement mettre à jour les valeurs en fonction non seulement de la valeur de value mais sur la valeur de key , sinon vous pouvez mettre à jour 'm' en 'male' lorsque la clé est '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');