gpt4 book ai didi

mysql - 获取行集中一行的排名

转载 作者:行者123 更新时间:2023-12-01 00:50:07 26 4
gpt4 key购买 nike

我有以下几行:

id        name        score

1 Bill 0
2 Kim 8
3 Michael 30
4 Doug 22
5 Mellisa 1

当我执行 SELECT * FROM table ORDER BY score DESC 时,我得到了

id        name        score

4 Doug 22
3 Michael 30
2 Kim 8
5 Mellisa 1
1 Bill 0

现在我只想获取一行,所以我将添加一个 where 子句,但问题是排名。

我在我的 php 代码中生成了伪排名,即行集中的第一行被指定为排名 1,第二行被指定为排名 2,依此类推...

所以当我执行 SELECT * FROM table WHERE id = 5 时,显然所有排名信息都丢失了。如何克服这个问题?在添加 where 子句之前,有什么方法可以获取行在行集中的位置?

最佳答案

将查询包装在子查询中,以便保留排名。这是一个例子,

-- the example produces rank based on highest score.
SELECT *
FROM
(
SELECT @rank := ifnull(@rank, 0) + 1 Rank,
Id, name, Score
FROM tableName a
ORDER BY Score DESC
) x
WHERE ID = 5

关于mysql - 获取行集中一行的排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16892542/

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