从PHP更新表中的Rank Row

时间:2013-12-11 00:08:16

标签: php mysql

此代码会动态创建排名,并相应地设置它们。现在的问题是如何更新表中的排名值,而不重复?我最近发布了这个问题,但没有&找不到解决方案。我将此代码应用于PHP代码,以便排名更新TeamPoints ......

请帮帮我!谢谢......

SELECT TeamID,
   TeamName,
   TeamLeader,
   TeamEmail,
   TeamWins,
   TeamLoss,
   TeamPoints,
   TeamRank
   FROM
      (
         SELECT TeamID,
                TeamName,
                TeamLeader,
                TeamEmail,
                TeamWins,
                TeamLoss,
                TeamPoints,
                @Rank := @Rank + 1 AS TeamRank
                FROM team
                CROSS JOIN (SELECT @Rank:=0) Sub0
                ORDER BY TeamPoints DESC
      ) Sub1

1 个答案:

答案 0 :(得分:0)

您只是在做SELECT声明。为了UPDATE它真的必须在原始表上使用UPDATE语句并使用该查询来提供teamRank的值:

UPDATE team t
INNER JOIN(
  SELECT TeamID,
  TeamPoints,
  @Rank := @Rank + 1 AS TeamRank
  FROM team
  CROSS JOIN (SELECT @Rank:=0) Sub0
  ORDER BY TeamPoints DESC
  ) a ON a.teamID = t.teamID
SET t.teamRank = a.teamRank