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

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

项目场景:

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


解决方案:

有以下两种解决方案:
下面是一个示例表的数据:
在这里插入图片描述

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

如下面的代码:

SET @counter=0; 
SELECT @counter:=@counter+1  AS Rank,LastName,Roll_no  as Roll  FROM Students  ORDER BY Roll_no  ASC ;

执行该语句的结果如下:
在这里插入图片描述
第二种:用一条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 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值