我试图在mysql中执行此操作:
UPDATE表SET值=值 - 1 WHERE blah blah
如果value为0且这是run,则将值设置为4294967295.这是因为它是无符号整数,因此它循环回到最大值。
我将如何让它保持零度?我可以纯粹在sql中执行此操作吗?
答案 0 :(得分:12)
`AND value > 0`
答案 1 :(得分:3)
SET value = IF(value=0,0,value-1)
答案 2 :(得分:2)
使用where子句说出值> 0
周日晚上SQL总是伤害我。 : - )
答案 3 :(得分:1)
只需附加到SQL字符串AND value > 0
答案 4 :(得分:0)
您可以运行第二个查询或if语句,检查它是否设置为最大值并将其重新设置为0。 但这是某种愚蠢的......
编写一个快速函数来检查条目,如果条目已经为0则不执行任何更新查询。
<强> (if value >= 0, do not perform xy)
强>