Php Mysql为每个id更新不同的字段(列)

Php Mysql为每个id更新不同的字段(列),php,mysql,Php,Mysql,我有一个数据库 球员ID、进球、黄牌、红牌 我想做的是在单个语句中根据playerID和偶数(goal,yellow,red)递增列。目前一次只能完成一个playerID: UPDATE players SET $event=$event+1 WHERE id=$playerID 其中$event将包含字段名(进球、黄色、红色) 我想做的是在一个单独的声明中说明这一切。如果你想象玩家1得到了一个黄色,玩家2得到了一个红色,那么我会把这句话想象成: UPDATE players SET (yel

我有一个数据库
球员ID、进球、黄牌、红牌
我想做的是在单个语句中根据playerID和偶数(goal,yellow,red)递增列。目前一次只能完成一个playerID:

UPDATE players SET $event=$event+1 WHERE id=$playerID
其中
$event
将包含字段名
(进球、黄色、红色)

我想做的是在一个单独的声明中说明这一切。如果你想象玩家1得到了一个黄色,玩家2得到了一个红色,那么我会把这句话想象成:

UPDATE players SET (yellows=yellows+1,reds=reds+1) WHERE id=(1,2)
我知道上面的代码是错误的,但我希望它能帮助我了解我想做什么。每个
SET
参数对应于相应的
id
参数。 就个人而言,它将是:

  UPDATE players SET yellows=yellows+1 WHERE id=1
  UPDATE players SET reds=reds+1 WHERE id=2  
我不是在寻找:

UPDATE players SET (yellows=yellows+1,reds=reds+1) WHERE id IN (1,2)

如果需要一条
UPDATE
语句:

UPDATE players 
SET yellows = CASE WHEN id = 1 
                     THEN yellows + 1
                     ELSE yellows
                   END  
  , reds    = CASE WHEN id = 2 
                     THEN reds + 1
                     ELSE reds 
              END
WHERE id IN (1, 2) ;  

虽然您可以尝试使用相当复杂的
if
函数来实现这一点,但使用多个
update
有什么不对?其实没什么,只是想知道是否有更好的方法。使用php mysql_query()时,如何链接多个更新?只需在末尾加一个逗号:mysql_query(“更新玩家集$event1=$event1+1,其中id=$playerID1,更新玩家集$event2=$event2+1,其中id=$playerID2”)?不,您只需执行多个
mysql_查询
mysql_查询(“更新玩家集$event1=$event1+1,其中id=$playerID1”);mysql_查询(“更新玩家集$event2=$event2+1,其中id=$playerID2”)