我有一张看起来像这样的桌子
id |game_id| player_id| winner ---------------------------- 1 | 1 | 1 | 2 | 1 | 2 | 3 | 1 | 3 | 4 | 1 | 4 |
我有一个game_id和赢家ID,我想将获胜者更新为1,将失败者更新为0;
UPDATE tournament SET winner = '1' WHERE game_id= 1 AND player_id = 1
然后
UPDATE tournament SET winner = '0' WHERE game_id= 1 AND player_id != 1
输出
id |game_id| player_id| winner ---------------------------- 1 | 1 | 1 | 1 2 | 1 | 2 | 0 3 | 1 | 3 | 0 4 | 1 | 4 | 0
任何人都可以告诉我如何使用单一查询来完成
答案 0 :(得分:2)
UPDATE tournament SET winner = IF(player_id = 1, '1', '0') WHERE game_id= 1
答案 1 :(得分:0)
查询
<强> SQLFIDDLEExample 强>:
UPDATE tournament
SET winner = CASE WHEN player_id = 1
THEN '1'
ELSE '0'END
WHERE game_id= 1