gpt4 book ai didi

MySQL 从排行榜中获取排名

转载 作者:行者123 更新时间:2023-11-29 12:32:45 26 4
gpt4 key购买 nike

我正在基于非常好的教程的游戏中实现排行榜。

http://gamedevelopment.tutsplus.com/tutorials/how-to-code-a-self-hosted-phpsql-leaderboard-for-your-game--gamedev-11627

我对 MySQL 还很陌生,但我有一些基础知识。但是有一部分代码我完全不知道实际是如何工作的,因为我不想实现一些对我来说没有任何意义的东西,所以我想问是否有人可以帮助我理解这一点。它处理返回玩家在排行榜中的排名:

SELECT  uo.*,
(
SELECT COUNT(*)
FROM Scores ui
WHERE (ui.score, -ui.ts) >= (uo.score, -uo.ts)
) AS rank
FROM Scores uo
WHERE name = '$name';

我的理解是,首先选择分数表中的所有内容,然后选择行数,我不明白该选择是如何工作的,WHERE 的工作方式完全超出了我的时间戳范围。然后我不确定它是如何协同工作的。

最佳答案

当数据库执行此查询时,首先从 Scores 中进行选择,并按 name = '$name' 进行过滤。

然后,对于每一行,它执行子查询:

(
SELECT COUNT(*)
FROM Scores ui
WHERE (ui.score, -ui.ts) >= (uo.score, -uo.ts)
) AS rank

这意味着,对于带有搜索名称的 Scores 的每一行,它会搜索 Scores 中有多少条记录,其中 (ui.score, -ui .ts) 大于或等于当前行的值。

希望对你有帮助...

关于MySQL 从排行榜中获取排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27231364/

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