代码之家  ›  专栏  ›  技术社区  ›  unknownuser

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

  •  6
  • unknownuser  · 技术社区  · 17 年前

    在MYSQL中,除了行数据之外,获取行的排名的最佳方法是什么?

    例如,假设我有一份学生名单,我想在GPA上排名。我知道我可以按GPA订购,但让MYSQL在我得到的行数据中也返回排名的最快方法是什么?

    2 回复  |  直到 17 年前
        1
  •  6
  •   William Brendel    17 年前

    这将返回学生的排名、学生ID和GPA。

    set @rownum := 0;
    SELECT @rownum := @rownum + 1 AS rank, student_id, gpa 
        FROM `students` ORDER BY gpa DESC
    
        2
  •  5
  •   Evan Mulawski    14 年前

    这将返回等级为 rownum

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