我为我的客户准备了一张桌子,其中我有他们的个人信息和分数。这个分数应该是0到1000之间的数字。我使用MySql作为DBMS,我将通过类似这样的查询更新客户端分数:
UPDATE client SET score=score+'[insertedScore]' where id='[id]';
其中[id]是客户的id和[insertedScore]是我应该在她的分数中插入的分数。 如何告诉mysql检查此更新后的分数是否超过1000,将其更改为1000?
注意:效果对我来说是一个重要问题。
答案 0 :(得分:1)
我可能会遗漏一些东西,但以下情况如何:
Update Client set Score = 1000 where Score > 1000;
在您完成所有更新后,只需运行一次。
当然,简单的方法是在运行更新之前验证插入的值,并确保它不能超过1000.然后不需要更新!
编辑:也许尝试这样的事情(这是SQL Server,我知道你需要mySQL但希望语法大致相同) -
Update Client Set Score =
( Case
WHEN score=score+'[insertedScore]' > 1000 THEN 1000
ELSE score=score+'[insertedScore]'
END
)
WHERE ID = '[ID]';
答案 1 :(得分:1)