MySQL Обновить несколько строк в одном столбце на основе значений из этого же столбца

У меня есть таблица, похожее на следующее:

ID     Key     Value     Order
1      gender  m         0
2      gender  f         0

34     age     10        0
35     age     80        0

Чтобы обновить эти строки, я должен использовать следующее:

UPDATE `DemoGroup` SET `value` = 'male' WHERE `value` = 'm'
UPDATE `DemoGroup` SET `value` = 'female' WHERE `value` = 'f'
UPDATE `DemoGroup` SET `value` = '10-19' WHERE `value` = '10'
UPDATE `DemoGroup` SET `value` = '80-89' WHERE `value` = '80'

Есть ли способ консолидировать это в одно оператор обновления , без использования идентификатора (который не гарантированно совпадает с той же), например (даже если это не будет работать) ...

UPDATE `DemoGroup` 
SET `value`= CASE `value`
    WHEN 'm' THEN 'male',
    WHEN 'f' THEN 'female' END 
WHERE `value` = 'm' OR `value` = 'f'

еще больше бонуса (но не несессуаров), если бы я мог выяснить, как Чтобы установить поле заказа, а также для каждой строки ...

7
задан Bill Karwin 31 August 2011 в 18:43
поделиться