gpt4 book ai didi

mysql - SQL 在表中查找位置

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

我在 mySql 中有一个表,其中包含用户 ID 和分数。

我想做的是按分数组织表(简单),然后找到某个用户 ID 在表中的位置。

到目前为止我会:

SELECT * FROM table_score
ORDER BY Score DESC

我如何找到 userID = '1234' 的位置(即第 10 个条目,共 12 个条目)

最佳答案

以下查询将为您提供一个新列 UserRank,它指定用户等级:

SELECT 
UserID,
Score,
(@rownum := @rownum + 1) UserRank
FROM table_score, (SELECT @rownum := 0) t
ORDER BY Score DESC;

SQL Fiddle Demo

这会给你类似的东西:

| USERID | SCORE | USERRANK |
-----------------------------
| 4 | 100 | 1 |
| 10 | 70 | 2 |
| 2 | 55 | 3 |
| 1234 | 50 | 4 |
| 1 | 36 | 5 |
| 20 | 33 | 6 |
| 8 | 25 | 7 |

然后您可以将此查询放在子查询中并使用 userId 进行过滤以获得该用户排名。像这样的东西:

SELECT
t.UserRank
FROM
(
SELECT *, (@rownum := @rownum + 1) UserRank
FROM table_score, (SELECT @rownum := 0) t
ORDER BY Score DESC
) t
WHERE userID = '1234';

SQL Fiddle Demo

关于mysql - SQL 在表中查找位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14310080/

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