当用户在php和mysql中删除它时,我想减少一个值.我想检查不要低于0.如果值为0则不减少.
mysql_query("UPDATE table SET field = field - 1 WHERE id = $number");
Run Code Online (Sandbox Code Playgroud)
如果字段为0则不执行任何操作
jue*_*n d 68
添加另一个条件仅在field更大时才更新0
UPDATE table
SET field = field - 1
WHERE id = $number
and field > 0
Run Code Online (Sandbox Code Playgroud)
Til*_*lge 36
您可以通过使用阻止新值降至零以下GREATEST().如果该值低于零,则零将始终大于您的计算值,从而防止使用低于零的任何值.
UPDATE table
SET field = GREATEST(0, field - 1)
WHERE id = $number
Run Code Online (Sandbox Code Playgroud)
另请注意:请不要再使用mysql_*功能了.它们已被弃用,最终将从PHP中删除.请改用PDO或MySQLi.
使用GREATEST的选项在较新的MySQL版本中不起作用,如果要更新多个字段而不是一个字段,则接受的答案可能无效.我对这个问题的解决方案是使用IF:
UPDATE table
SET field = IF(field > 0, field - 1, 0)
WHERE id = $number
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36864 次 |
| 最近记录: |