更新时间:2022-03-14 21:50:55
您可能不仅应基于value
的值,而且还应基于key
的值来更新值,否则可以将'm'更新为密钥为衬衫大小"时为男性".
You should probably update the values based not only on the value of value
but on the value of key
, otherwise you could update 'm' to 'male' when key is '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');