我有一个MySQL数据库和一个包含列的表table1
:
id
uint 类型name
,age
等),status
枚举类型(met, like, love, hate, kill)
。 对于插入的行(1, love)
,我想选择“下一个”status
(hate
)。
我的尝试:
我试过了:
SELECT (status + 1) FROM table1 WHERE id = 1
但它退回了4
(索引,而不是文本值)。
当然:
SELECT status FROM table1 WHERE id = 1
返回love
(文本值,而不是索引)。
问题:
有没有办法实现它(可能是某种“铸造”)?
我认为解决方案不要乱用数据库架构表。
此外,我可以UPDATE
排status = status + 1
,而不是选择UPDATE
再次status = status - 1
,但更糟糕的是......
修改
我被要求提供更多细节:
我没有任何附加表来保存我的枚举顺序。我刚刚用phpMyAdmin
添加了它,并且它的选择按照我的描述工作。
此外,当我使用status = status + 1
更新表格时,我会从hate
获取love
。
答案 0 :(得分:1)
这并不像你想象的那么容易。你如何管理你的枚举顺序?通过身份证?通过订购栏?至少你必须使用子查询或类似的东西。你能给我们一些更详细的信息吗?
答案 1 :(得分:0)
这样的东西?
SELECT * FROM test
WHERE status+0=(SELECT (status + 0)+1 FROM test WHERE id = 1)
这是下一个状态
SELECT (status + 0)+1 FROM test WHERE id = 1