我的游戏中有一个变量可以增加分数,有时可以减去分数。
在我的数据库中,我有一个分数表,但分数的值必须始终在 0 到 20 之间。
因此,如果我的分数当前为 2 并且变量 $value 为 -3,我可以通过这样做来避免低于 0。
UPDATE table
SET field = GREATEST(0, field + $value)
WHERE id = $id
有没有办法让该值不会低于 0 且不会高于 20?
最佳答案
您可以使用 case 表达式。
UPDATE [table]
SET [field] = CASE
WHEN [field] + @value > 20
THEN 20
WHEN [field] + @value < 0
THEN 0
ELSE [field] + @value
END
WHERE [id] = @ID;
关于mysql - 更新后的值必须保持在两个值之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44181789/