Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL Atualiza várias linhas em uma única coluna com base nos valores dessa mesma coluna


Você provavelmente deve atualizar os valores com base não apenas no valor de value mas no valor de key , caso contrário, você pode atualizar 'm' para 'masculino' quando a chave for 'tamanho da 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');