表test中現有數據
id | score |
1 | 10 |
2 | 5 |
3 | 15 |
執行sql
select id,score,(@rowno:=@rowno+1) as rowno from test,(select (@rowno:=0)) b order by score desc;
獲得如下結果
id | score | rowno |
3 | 15 | 1 |
1 | 10 | 2 |
2 | 5 | 3 |
然后在此基礎上查詢某條記錄的位置
select rowno from (select id,score,(@rowno:=@rowno+1) as rowno from test,(select (@rowno:=0)) b order by score desc) c where id = 1;
這樣就可以查到id為1的記錄的排序為2
參考: http://blog.csdn.net/sugang_ximi/article/details/6703804