根据分数向用户显示排序后的位置

时间:2015-12-26 16:45:45

标签: php mysql

我有一个包含id列和得分列的表,我想根据得分列对表进行排序,然后找到正在加载页面并向他显示他/她位置的特定用户。例如,告诉他“你的位置是第40位”。 我知道如何对查询进行排序:

SELECT id,score FROM `table` ORDER BY `score` DESC

但是在排序之后如何找到特定身份证的位置?

2 个答案:

答案 0 :(得分:1)

您不需要order by。代替:

select 1 + count(*)
from table t
where t.score > (select t2.score from table t2 where id = $id);

答案 1 :(得分:0)

试一试:

SELECT @rownum:=@rownum+1 ‘rank’, id, score FROM table t, (SELECT @rownum:=0) r ORDER BY score DESC;

这将创建一个列并在每条记录中增加1。