根据某个字段排序_MySQL如何根据学生的分数加上名次排行

场景

例如:学生最近考试的分数出来了,但是没有根据分数来排名次的。现在要用mysql语句来实现名次的排行。。。这种排行的例子有很多,比如微信运动步数,在一个走路计步数的活动里,记录今日步数的排行等等。下面就用分数排行来详细讲讲。希望对你有帮助

这里直接上sql语句

SELECT (@rowNO := @rowNo+1) AS rowno FROM (SELECT * FROM (自己的表名)) a,(SELECT @rowNO :=0) b 

例子:

SELECT (@rowNO := @rowNo+1) AS rowno,a.*,(自己表中的字段) FROM (SELECT * FROM w_student_exam (自己的表名)) a ,(SELECT @rowNO :=0) b ORDER BY a.score DESC(按照哪个字段排序)

截图如下:

f33f09deca6f8dec29b83b8b4e98a49c.png

如果想要获取某个条件下的数据排名:

例:获取学生Id 为23 的学生的分数(score) 的排名

##子查询从内到外:最内层 是查到所有数据,其次将数据排序并加上名次,最后按照条件获取其中某一条的名次SELECT * FROM(SELECT (@rowNO := @rowNo+1) AS rowno,a.* FROM ( SELECT * FROM w_student_exam ) a ,(SELECT @rowNO :=0) b ORDER BY a.score DESC  ) asd WHERE asd.student_id=23
a88fd029a925e182f87a891dd5c46eff.png

以上的例子也适合用在微信运动步数的开发里。

df6a6c61e2b6affb5e555c09a45154cd.png

sql语句也是差不多的,这里就不多写一遍了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值