2009-01-10 67 views
6

除了MYSQL中的行數據之外,獲得行級別的最佳方式是什麼?在MYSQL中產生排名的最好方法是什麼?

例如,假設我有一份學生名單,我想在GPA上排名。我知道我可以通過GPA進行訂購,但是在返回的rowdata中,讓MYSQL返回排名的最快方式是什麼?

+0

http://dba.stackexchange.com/questions/13703/get-the-rank-of-a-user-in-a-score-table – 2015-10-07 05:15:44

+0

[的MySQL可能的複製 - 對獲取行號選擇](http://stackoverflow.com/questions/2520357/mysql-get-row-number-on-select) – 2015-10-07 05:31:43

回答

5

這將返回等級爲rownum

SELECT @rownum := @rownum + 1 rownum, 
     t.* 
    FROM (SELECT @rownum:=0) r, 
     (SELECT * FROM students ORDER BY gpa DESC) t; 
6

這將返回學生的等級,學生證,和GPA。

set @rownum := 0; 
SELECT @rownum := @rownum + 1 AS rank, student_id, gpa 
    FROM `students` ORDER BY gpa DESC 
相關問題