mysql - 纯 mySQL 增量循环?

标签 mysql

不使用 PHP 或任何东西。有没有办法做这样的事情:

UPDATE myTable SET var1 = var1 + 1 IF var1 < 5 ELSE var1 = 0 WHERE [WHERE clause]

从来没有真正做过任何 if mySQL 事情,所以有点不确定?

因此结果将是变量永远不会高于 5,如果它在递增时为 5,则重置为 0。

TIA

最佳答案

要么使用IF()

UPDATE MyTable SET var1 = IF(var1 < 5, var1 + 1, 0) WHERE id = 1;

或者在这种情况下,更简单,只需使用 modulo operator

UPDATE MyTable SET var1 = (var1 + 1) MOD 6 WHERE id = 1;

编辑:是的,我意识到如果范围从 0..5 开始,后一个将不起作用,我只是认为其目的是将数字保持在 0 到 5 之间(含)。如果我错了,请继续第一个 :)

关于mysql - 纯 mySQL 增量循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557088/

相关文章:

mysql - 增加 mysql 导入大小

MySQL:如何从多个表中选择字段以插入第三个表?

php - 如何处理 SQL 字段中的数组?

php - 数据库时区

php - 嵌套foreach循环不输出数据

索引后 MySQL 仍然很慢

php - 我可以更新 INT 值 + 1 并返回新值吗?

MySQL - 搜索 NULL 值

php - 在两台机器上保持 2 个 mysql 数据库相同

php - 尝试用 mysql 查询填充 PHP 变量。然后使用该查询中的数据更新另一个表