mysql 排序後獲得某行的位置

假設有test表,下圖爲表機構和數據,score表示積分。現在要查詢積分排名爲第幾的id??

查詢語句

  1. select id,score,(@rowno:=@rowno+1) as rowno from test,(select (@rowno:=0)) b order by score desc;  

查詢結果:

這樣就得到了根據積分排名的位置了(rowno),要獲得id只要在這個表的基礎上進行查詢就可以了

  1. select id from (select id,score,(@rowno:=@rowno+1) as rowno from test,(select (@rowno:=0)) b order by score desc) c where rowno=1;  
rowno的值爲你想要查詢的名次,就得到對應的id了。

上面的rowno爲1,排名第一的id就是2了



發佈了36 篇原創文章 · 獲贊 15 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章