我有一个包含 2 列的简单 MYSQL 表:
id | status
1 | b
status
是 ENUM('a','b','c')
我想更新这一行,以便:
1) 当前状态是 c
然后是新值 b
2) 当前状态是b
然后是新值a
3) 当前状态为a
然后什么都不做
我尝试了以下但当然不起作用:
UPDATE table SET status = status - 1 WHERE id = '1'
最佳答案
UPDATE tablename SET status = case status when 'b' then 'a'
when 'c' then 'b' end
WHERE id = '1' and status <> 'a'
(<> 'a'
中的 WHERE
是为了避免事务中出现 'a' 行。)
关于mysql更新行到以前的枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29728566/