我在数据库中有一个表,其中包含以下记录:
match_id | guess | result
125 | 1 | 0
130 | 5 | 0
233 | 11 | 0
125 | 2 | 0
Run Code Online (Sandbox Code Playgroud)
我的用户为每个匹配选择一个猜测,我有一个根据匹配结果计算猜测结果的函数:如果猜测正确,结果将是(1)如果错误,结果将是(2) )如果比赛没有完成,结果将是(0默认)我有十一种猜测的可能性(多个可能同时正确)例如:如果我有一个匹配的白衣id = 125并且我拥有所有猜测是错误的,除了8,11所以我应该更新所有具有匹配ID并且他们的猜测是8或11的匹配的结果字段(我将给这个结果字段1)并且我想给(2)另一个猜测同一场比赛
我将此查询用于以下所有11种可能性:
UPDATE `tahminler` SET result=1 WHERE match_id='1640482' AND tahmin='8'
UPDATE `tahminler` SET result=1 WHERE match_id='1640482' AND tahmin='11'
UPDATE `tahminler` SET result=0 WHERE match_id='1640482' AND tahmin='1'
UPDATE `tahminler` SET result=0 WHERE match_id='1640482' AND tahmin='2'
UPDATE `tahminler` SET result=0 WHERE match_id='1640482' AND tahmin='3'
UPDATE `tahminler` SET result=0 WHERE match_id='1640482' AND tahmin='4'
UPDATE `tahminler` SET result=0 WHERE match_id='1640482' AND tahmin='5'
UPDATE `tahminler` SET result=0 WHERE match_id='1640482' AND tahmin='6'
UPDATE `tahminler` SET result=0 WHERE match_id='1640482' AND tahmin='7'
UPDATE `tahminler` SET result=0 WHERE match_id='1640482' AND tahmin='9'
UPDATE `tahminler` SET result=0 WHERE match_id='1640482' AND tahmin='10'
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以在一个查询中完成这项工作?不是吗?
使用这两个查询:
UPDATE `tahminler`
SET result=0
WHERE match_id='1640482'
AND tahmin IN ('1','2','3','4','5','6','7','9','10')
Run Code Online (Sandbox Code Playgroud)
然后用这个:
UPDATE `tahminler`
SET result=1
WHERE match_id='1640482'
AND tahmin IN ('8','11')
Run Code Online (Sandbox Code Playgroud)