我的游戏中有一个变量,它会增加积分,有时会减少积分
在我的数据库中,我有一个分数表,但分数的值必须始终在0到20之间。
因此,如果我的分数目前为2且变量$ value为-3,我可以避免这样做。
UPDATE table
SET field = GREATEST(0, field + $value)
WHERE id = $id
有没有办法使价值不低于0且不高于20?
答案 0 :(得分:1)
您可以使用案例表达。
UPDATE [table]
SET [field] = CASE
WHEN [field] + @value > 20
THEN 20
WHEN [field] + @value < 0
THEN 0
ELSE [field] + @value
END
WHERE [id] = @ID;
答案 1 :(得分:1)
你可以像这样嵌套GREATEST和LEAST,以达到你想要的效果。
UPDATE table
SET field = GREATEST(0, LEAST(20, field + $value))
WHERE id = $id