在過去的幾天裏,我一直在爲這個問題困惑不解,但我不確定這是否可能,但是我想問一下。在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子句,但似乎並沒有在語法上是可行的。 –