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”)我就是这么想的。干杯