MySQL 为所有用户更新多行


MySQL Update multiple rows for all users

我在这个问题上挠头。

我必须更新数据库表中在该数据库表中有多个条目的所有用户的分数字段...但它仅在满足以下参数/约束之一时更新分数字段。

例如,表中有两行(每个用户)用于 2 名守门员,但只会更新其中一行。以下内容有效,但仅当有一个用户时...所以数据库表中只有 2 行供 2 名守门员使用。

$result = mysqli_query($db,"UPDATE Points 
SET Points.Score=(SELECT Week_22.TP FROM Week_22 WHERE    
Week_22.Player=Points.Player) 
WHERE Position='Goalkeeper' AND Active='yes' AND Played='yes'
OR Position='Goalkeeper' AND Active='no' AND Played='yes'
OR Position='Goalkeeper' AND Active='no' AND Played='no'
LIMIT 1
");

我认为GROUP BY可能会起作用,但没有运气。因此,我想不出如何扩展上述内容以适用于表中的每个字段和用户。

任何帮助将不胜感激。

您需要在 WHERE 子句中添加括号以分隔 3 个主要的"OR"逻辑语句

$result = mysqli_query($db,"UPDATE Points 
SET Points.Score=(SELECT Week_22.TP FROM Week_22 WHERE    
Week_22.Player=Points.Player) 
WHERE (Position='Goalkeeper' AND Active='yes' AND Played='yes')
OR (Position='Goalkeeper' AND Active='no' AND Played='yes')
OR (Position='Goalkeeper' AND Active='no' AND Played='no')
");