sql >> Base de Datos >  >> RDS >> Mysql

MySQL Actualice varias filas en una sola columna en función de los valores de esa misma columna

Probablemente debería actualizar los valores basándose no solo en el valor de value pero en el valor de key , de lo contrario, podría actualizar 'm' a 'masculino' cuando la clave es 'talla de camisa'.

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