1

我正在尝试在 mysql 中执行此操作:

UPDATE 表 SET value = value - 1 WHERE blah blah

如果值为 0 并且运行值设置为 4294967295。这是因为它是一个无符号整数,所以它循环返回最大值。

我将如何让它保持为零呢?我可以纯粹在 sql 中执行此操作吗?

4

5 回答 5

12
`AND value > 0`
于 2009-11-29T18:42:25.710 回答
3
SET value = IF(value=0,0,value-1)
于 2009-11-29T18:44:31.273 回答
2

使用 where 子句表示 value > 0

周日晚上的 SQL 也总是让我很痛苦。:-)

于 2009-11-29T18:44:46.160 回答
1

只需附加到 SQL 字符串AND value > 0

于 2009-11-29T18:47:02.287 回答
0

您可以运行第二个查询或 if 语句,检查它是否设置为最大值并将其设置回 0。但这有点愚蠢......

编写一个检查条目的快速函数,如果它已经为 0,则不执行任何更新查询。

(if value >= 0, do not perform xy)

于 2009-11-29T18:43:56.117 回答