2009-01-10 65 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 
相关问题