Php MySQL排名,无法使其正常工作

Php MySQL排名,无法使其正常工作,php,mysql,database,ranking,rank,Php,Mysql,Database,Ranking,Rank,我知道这在某种程度上被涵盖了,但这对我的处境没有帮助,相反,排名上存在差异。想知道是否有人能帮忙 我有一个游戏,数据库表是: 用户、地图、昵称、用户\游戏\分数 我正在开发一个领导委员会,可以很容易地获得按分数排序的信息。太棒了 但是我想对它进行排名,这样我就可以得出一个特定的用户分数,并且排名与所有分数相关。例如: 全球分数 user info - Score - (rank)1 user info - Score - (rank)2 user info - Score - (rank)3 e

我知道这在某种程度上被涵盖了,但这对我的处境没有帮助,相反,排名上存在差异。想知道是否有人能帮忙

我有一个游戏,数据库表是: 用户、地图、昵称、用户\游戏\分数

我正在开发一个领导委员会,可以很容易地获得按分数排序的信息。太棒了

但是我想对它进行排名,这样我就可以得出一个特定的用户分数,并且排名与所有分数相关。例如:

全球分数

user info - Score - (rank)1
user info - Score - (rank)2
user info - Score - (rank)3
etc.
而用户得分更可能是:

user info - Score - (rank)82
user info - Score - (rank)94
user info - Score - (rank)115
etc.
我设想实施如下:

 SELECT users.first_name, users.surname, player_nicknames.nickname, maps.map_name, user_game_scores.score,
FIND_IN_SET( score, ( SELECT GROUP_CONCAT( score ORDER BY score DESC ) FROM user_game_scores ) ) AS rank
FROM `user_game_scores`
INNER JOIN users ON user_game_scores.user_id = users.user_id
INNER JOIN maps ON user_game_scores.map_id = maps.map_id
INNER JOIN player_nicknames ON user_game_scores.user_id = player_nicknames.user_id
WHERE user_game_scores.deleted is null
AND users.deleted is null
AND player_nicknames.deleted is null
ORDER BY user_game_scores.score DESC
正如您所见,排名往往会漏掉一两个数字(数字2和23)。我知道像排名24这样的东西会分组并继续(我更喜欢在那个例子中发生),但我不明白为什么有些排名会丢失,而且真的不想对这个功能进行后期处理


对不起,这很长,但我想我会提供尽可能多的信息。提前谢谢

这可能是因为您的SELECT GROUP\u CONCAT子查询没有筛选“已删除”(已删除为空)条目Paul Spiegel 9小时前

编辑您的问题并提供示例数据和所需结果。这可能是因为您的
SELECT GROUP_CONCAT
子查询没有过滤“deleted”(已删除)条目(
deleted为null
)。先生,您太棒了。实际上,另一条记录已被删除,但我没有从该表中清除该条目。非常感谢。