gpt4 book ai didi

sql - 在 MySQL 表中显示单个排名

转载 作者:可可西里 更新时间:2023-11-01 07:03:06 26 4
gpt4 key购买 nike

我有一个名为“highscores”的表格,看起来像这样。

id      udid       name       score
1 1111 Mike 200
2 3333 Joe 300
3 4444 Billy 50
4 0000 Loser 10
5 DDDD Face 400

给定一个特定的 udid,我想通过他们的分值返回该行的排名。

即如果给定的 udid = 0000,我应该返回 5。

知道如何为 MySQL 数据库编写此查询吗?

最佳答案

MySQL 没有任何分析/排名功能,但您可以使用变量人为地创建排名值:

  SELECT t.id,
t.udid,
t.name,
t.score,
@rownum := @rownum + 1 AS rank
FROM HIGHSCORES t
JOIN (SELECT @rownum := 0) r
ORDER BY t.score DESC

为了查看什么排名与 UDID“0000”相关联,请使用:

SELECT MAX(x.rank) AS rank
FROM (SELECT t.id,
t.udid,
t.name,
t.score,
@rownum := @rownum + 1 AS rank
FROM HIGHSCORES t
JOIN (SELECT @rownum := 0) r
ORDER BY t.score DESC) x
WHERE x.udid = '0000'

如果用户有多个高分值,则需要 MAX。或者,您不能使用 MAX 并使用 ORDER BY rank LIMIT 1

关于sql - 在 MySQL 表中显示单个排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2157946/

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