在过去的几天里,我一直在为这个问题困惑不解,但我不确定这是否可能,但是我想问一下。在SQL中更新或插入高分
如果您的分数较高,可以使用单个SQL语句更新高分,或者如果您的第一个分数是否可以插入?
我的成绩表中有一个用户名,级别和分数列,我喜欢它遵循以下逻辑:
- 如果你的新的分数比你的最后得分这个水平时,则更换它。
- 如果此级别没有分数,请添加它。
- 如果此级别的分数低于此级别的最高分数,则不执行任何操作。
这是可能在一个单一的SQL语句或我必须使用两个,一个来看看你是否有新的高分,如果是这样,取而代之?每个用户标识在每个级别的表格中只有一个分数。
我正在使用MySQL。
UPDATE:
基于下面的答案,这下面的SQL工作:
INSERT INTO Scores SET UserID = 'user', Level = 'level', Score = 'score'
ON DUPLICATE KEY UPDATE Score = IF (Score < 'score', 'score', Score)
我的表是这样定义的用户名和等级是两个键。
MERGE是Oracle的方式.. – Randy
我没有任何人了,但大多是试图使用REPLACE与WHERE子句,但似乎并没有在语法上是可行的。 –