gpt4 book ai didi

mysql - 使用 MySQL 的 TOP 10 玩家列表,显示该玩家的个人位置,即使他不在排行榜中

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

我有一个小问题:我想使用 MySQL 为我的游戏组织一个前 10 名列表。好吧,实际上它已经可以工作了,但我需要为其添加一项功能。比如说,我得到的表包含一个名为“level”的字段例如,数据库中有1万名玩家,每个人都有自己的等级。因此,要创建前十名列表,我这样做:

SELECT `values`.`level` FROM `values` ORDER BY `values`.`level` DESC LIMIT 10

它运行良好,给了我 10 名最高级别的玩家。但如果玩家本人不在top10名单中怎么办?他想知道他还需要多少时间才能到达那里。让我们这样表示它:他看到分数表显示 10 名最佳玩家,并在表底部看到他自己的记录,例如,您的位置是 4023当然,我可以从 MySQL 中检索所有记录,按级别降序排列它们,并使用循环计算用户的位置,但上尉明显告诉我这不是最合理的方法:-)

我需要这样的结果(仅适用于 10 个用户,而不是 5 个)

    +-------+------+--------+
| level | pos |user |
+-------+------+--------+
| 23 | 1 |Alex |
| 19 | 2 |John |
| 18 | 3 |James |
| 16 | 4 |Ashley |
| 15 | 5 |Casey |
| | | |
| 4 | 145 |You |
+-------+------+--------+

那么,有什么方法可以在一个查询中完成它吗?

谢谢!

最佳答案

联合可以做到这一点,请参阅伪代码来了解想法

(
SELECT `values`.`level` FROM `values` ORDER BY `values`.`level` DESC LIMIT 10
UNION
SELECT `values`.`level` FROM `values` where playerId = loggedPlayerId
) ORDER BY `values`.`level`

关于mysql - 使用 MySQL 的 TOP 10 玩家列表,显示该玩家的个人位置,即使他不在排行榜中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22075752/

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