为 MySQL 的查询结果添加排名字段

项目场景:

应项目经理和前端的要求,为MySQL语句添加排名字段


解决方案:

有以下两种解决方案:
下面是一个示例表的数据:
为 MySQL 的查询结果添加排名字段_第1张图片

第一种:
然后我们要根据 Roll_No 字段进行排序并给出排名,我们首先必须定义一个初始值为0的变量,然后在查询结果中使用这个变量。

如下面的代码:

SET @counter=0; 
SELECT @counter:=@counter+1  AS Rank,LastName,Roll_no  as Roll  FROM Students  ORDER BY Roll_no  ASC ;
执行该语句的结果如下:

为 MySQL 的查询结果添加排名字段_第2张图片
第二种:用一条sql搞定
SQL代码:

--也就是把临时变量, 放在from 子句里.   
SELECT @counter:=@counter+1 AS Rank,LastName,Roll_no as Roll FROM Students,(SELECT @counter:=0) AS t   
ORDER BY Roll_no ASC;  

不用临时变量

SELECT   
  
(SELECT COUNT(ROLL_NO) FROM Students WHERE s.ROLL_NO <= ROLL_NO) AS Rank,   
  
s.LastName, s.Roll_no AS Roll   
  
FROM Students s   
  
ORDER BY s.Roll_no ASC 

你可能感兴趣的:(数学建模,java,数据库)