此代码动态创建排名并相应地设置它们。现在的问题是如何更新表中的排名值而不重复?我最近发布了这个问题,但没有找到解决方案。我是将此代码应用于 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
最佳答案
您只是在执行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
关于php - 从 PHP 更新表中的排名行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20507993/