Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取用户';s在排行榜上的位置_Mysql_Sql_Subquery_Where Clause - Fatal编程技术网

Mysql 获取用户';s在排行榜上的位置

Mysql 获取用户';s在排行榜上的位置,mysql,sql,subquery,where-clause,Mysql,Sql,Subquery,Where Clause,查询已停止工作(获取用户在排行榜中的位置): 在评分表中,我们需要通过字段battleWinScore获取用户的位置。 我绝对不擅长mysql。Help=)如果您运行的是MySQL 8.0,只需使用行数()(或者rank(),如果您希望一致地允许绑定) 在早期版本中,我建议使用相关子查询,而不是用户变量: select uid, battleWinScore (select count(*) + 1 from rating r1 where r1.battleWinScore >

查询已停止工作(获取用户在排行榜中的位置):

在评分表中,我们需要通过字段
battleWinScore
获取用户的位置。
我绝对不擅长mysql。Help=)

如果您运行的是MySQL 8.0,只需使用
行数()
(或者
rank()
,如果您希望一致地允许绑定)

在早期版本中,我建议使用相关子查询,而不是用户变量:

select uid, battleWinScore
    (select count(*) + 1 from rating r1 where r1.battleWinScore > r.battleWinScore) as rn
from rating r
where uid = 572

请提供您的表结构和示例数据,任何一个都可以帮助您了解您的MySQL版本?您模拟的是行数,而不是排名。您的查询看起来很有效:感谢所有响应者!建议的解决方案有帮助。
select *
from (
    select uid, battleWinScore, rank() over(order by battleWinScore desc) rn
    from rating
) r
where uid = 572
select uid, battleWinScore
    (select count(*) + 1 from rating r1 where r1.battleWinScore > r.battleWinScore) as rn
from rating r
where uid = 572