从mysql查询中获取玩家等级

时间:2012-03-29 15:01:54

标签: php mysql

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

我不想从他的核心桌上获得球员排名。

id   name   score

1    John    10
2    Linda   5
3    Emmy    25 

我想在查询中传递一个名字(Linda)并获得她的排名(她在上表中只有5分),并得到她的排名(nr 3)。

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

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

提前致谢

4 个答案:

答案 0 :(得分:2)

SELECT (COUNT(*) + 1) AS rank FROM hiscore WHERE score > (SELECT score FROM hiscore WHERE name = 'Linda')

答案 1 :(得分:1)

SET @rownum := 0;
SELECT rank, name, score 
FROM 
    (SELECT @rownum := @rownum + 1 AS rank, name, score 
     FROM players 
     ORDER BY score DESC)

答案 2 :(得分:1)

我不知道你想要什么。表格旁边的整数是否为“前10名”?

选中此link

答案 3 :(得分:1)

尝试此查询 -

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'