Php 从mysql查询中获取玩家排名

Php 从mysql查询中获取玩家排名,php,mysql,Php,Mysql,我为这个问题找到了一些很好的答案,但我真的无法让它们发挥作用 我不想从他的核心排名中得到一个球员的排名 id name score 1 John 10 2 Linda 5 3 Emmy 25 我想在查询中输入一个名字Linda,得到她的排名她在上表中只有5分,得到她的排名NR3 我在这个答案中发现了一个类似的问题,但我不明白: SELECT uo.*, ( SELECT COUNT(*) FROM users u

我为这个问题找到了一些很好的答案,但我真的无法让它们发挥作用

我不想从他的核心排名中得到一个球员的排名

id   name   score

1    John    10
2    Linda   5
3    Emmy    25 
我想在查询中输入一个名字Linda,得到她的排名她在上表中只有5分,得到她的排名NR3

我在这个答案中发现了一个类似的问题,但我不明白:

SELECT  uo.*, 
    (
    SELECT  COUNT(*)
    FROM    users ui
    WHERE   (ui.points, ui.id) >= (uo.points, uo.id)
    ) AS rank
   FROM    users uo
   WHERE   id = @id
提前感谢

从hiscore WHERE score选择COUNT*+1作为排名

从hiscore WHERE name='Linda'选择得分

从hiscore WHERE score选择COUNT*+1作为排名

从hiscore WHERE name='Linda'选择得分

尝试此查询-

SET @rownum := 0;
SELECT rank, name, score 
FROM 
    (SELECT @rownum := @rownum + 1 AS rank, name, score 
     FROM players 
     ORDER BY score DESC)
SELECT name, score, rank FROM
  (SELECT *, @r:=@r + 1 rank FROM table_name ORDER BY score DESC) t1,
  (SELECT @r:=0) t2
WHERE name = 'Linda'
请尝试此查询-

SELECT name, score, rank FROM
  (SELECT *, @r:=@r + 1 rank FROM table_name ORDER BY score DESC) t1,
  (SELECT @r:=0) t2
WHERE name = 'Linda'

看起来你的答案很好用。统计分数大于或等于指定用户分数的所有用户。可以更改为刚好大于您想要的值,也可以添加1。然后将示例的外部where改为where name='Linda'。看起来你的答案很好。统计分数大于或等于指定用户分数的所有用户。可以更改为刚好大于您想要的值,也可以添加1。然后将外部where改为where name='Linda'作为示例。如果出现领带,它将失败!它将失败的情况下,领带!