gpt4 book ai didi

php - MySQL Rank,无法正常工作

转载 作者:行者123 更新时间:2023-11-29 19:08:23 25 4
gpt4 key购买 nike

我知道这已经被涵盖了一些,但这对我的情况没有帮助,而是排名存在差异。想知道是否有人能够提供帮助!

所以我有一个游戏,数据库表是:用户、 map 、昵称、user_game_scores

我正在开发一个排行榜,并且能够轻松获取按分数排序的信息。太棒了。

但我想对此进行排名,以便我可以提取特定用户的分数,并且排名与所有分数相关。例如:

全局得分

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

But it returns this: (click here) - names etc have been removed from the image as it may not be appropriate to display正如您所看到的,排名往往会遗漏一两个数字(数字 2 和 23)。我知道像排名 24 这样的东西会分组并继续(我更喜欢在这种情况下发生),但我不明白为什么某些排名缺失,并且真的不想后期处理此功能。

抱歉,这很长,但我想我会提供尽可能多的信息。提前致谢!

最佳答案

这可能是因为您的 SELECT GROUP_CONCAT 子查询没有过滤“已删除”(已删除为空)条目。 – 保罗·斯皮格尔 9 小时前

关于php - MySQL Rank,无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43306728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com