sql >> Databasteknik >  >> RDS >> Mysql

MySQL Uppdatera flera rader i en enda kolumn baserat på värden från samma kolumn

Du bör förmodligen uppdatera värdena inte bara baserat på värdet för value men på värdet av key , annars kan du uppdatera 'm' till 'man' när nyckeln är 'skjortstorlek'.

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


  1. Så här fixar du:JSON_VALUE Returnerar NULL med långa strängar (SQL-server)

  2. Returnerar flera tabeller från en lagrad procedur

  3. MySQL-fråga för att hitta de tre senaste datumen i en tabell

  4. Slick dynamisk gruppbyte