我有一个网站,人们可以在其中保存游戏中的高分。我一直在尝试通过查找其他更高的高分数量来为玩家的高分分配排名。因此,如果查询找到 5 个高分的人,则该玩家的高分排名为 6。
问题是每个用户可以在数据库中记录多个分数(对于同一游戏)。这就是为什么当我只想显示玩家在游戏中的最高分(而不是他在该游戏中的所有分数)时,我使用GROUP BY 用户。
这是我现在使用的代码。它不起作用,因为查询似乎总是返回 2(就像它总是返回只有一个分数比玩家的最高分高)。如果我删除temp GROUP BY user,它会返回一半正确的值,因为计算给定游戏中每个玩家的所有分数(如果玩家在游戏中作为多个分数)。
$count3 = mysql_result(mysql_query("SELECT COUNT(*) + 1 as Num FROM (SELECT * FROM ava_highscores WHERE game = $id AND leaderboard = $get_leaderboard[leaderboard_id] AND score > '$highscore2[score]') temp GROUP BY user");