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