一尘不染

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

mysql

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

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


阅读 218

收藏
2020-05-17

共1个答案

一尘不染

这将返回排名为 rownum

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