在MYSQL中生成排名的最佳方法是什么?

时间:2009-01-10 14:46:34

标签: sql mysql

除了MYSQL中的行数据之外,获得行级别的最佳方法是什么?

例如,假设我有一份学生名单,我想在GPA中排名。我知道我可以通过GPA订购,但是有什么最快的方式让MYSQL在我回来的rowdata中返回等级?

2 个答案:

答案 0 :(得分:6)

这将返回学生的排名,学生证和GPA。

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

答案 1 :(得分:5)

这会将等级返回为rownum

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