mysql更新行到以前的枚举值

标签 mysql sql enums

我有一个包含 2 列的简单 MYSQL 表:

id | status
 1 |  b

statusENUM('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/

相关文章:

php - 截断 MySQL 表但排除第一列

sql - 替换SQL中逗号分隔字符串中的空格

python - 从函数 **keywords 为 sql 语句创建字符串

mysql - UPDATE 不影响某些行

mysql - 从学生和教师表中选择

java - Spring boot 中的枚举绑定(bind)异常处理

c# - 你会在长开关/枚举声明中使用区域吗?

python - 使用 PEP 435 兼容枚举的带有枚举的 SQLAlchemy 列产生表创建错误

php - 在 PHP 中更改来自 MySQL 的项目的顺序

sql - 无法连接到 Azure SQL 服务器,错误 :