欢迎来到代码驿站!

Mysql

当前位置:首页 > 数据库 > Mysql

Mysql排序获取排名的实例代码

时间:2021-01-26 15:22:59|栏目:Mysql|点击:

代码如下所示:

SELECT @i:=@i+1 rowNum,
if(@total=t.s_score,@rank,@rank:=@i) rank,@total:=t.s_score,
t.*
from(
select t1.* ,t2.s_score from student t1 LEFT JOIN score t2 on t1.s_id=t2.s_id and t2.c_id="01" ORDER BY t2.s_score desc
)t,(select @i:=0,@rank:=0,@total:=null) s ;
SELECT @i:=@i+1 rowNum,
if(@total=t.s_score,@rank,@rank:=@rank+1) rank,@total:=t.s_score,
t.*
from(
select t1.* ,t2.s_score from student t1 LEFT JOIN score t2 on t1.s_id=t2.s_id and t2.c_id="01" ORDER BY t2.s_score desc
)t,(select @i:=0,@rank:=0,@total:=null) s ; 

Mysql 获取成绩排序后的名次

其实就是输出mysql的排序后的行号

RT:获取单个用户的成绩在所有用户成绩中的排名

可以分两步:

1、查出所有用户和他们的成绩排名

select id,maxScore,(@rowNum:=@rowNum+1) as rowNo 
from t_user, 
(select (@rowNum :=0) ) b 
order by t_user.maxScore desc  

2、查出某个用户在所有用户成绩中的排名

select u.rowNo from ( 
select id,(@rowNum:=@rowNum+1) as rowNo 
from t_user, 
(select (@rowNum :=0) ) b 
order by t_user.maxScore desc ) u where u.id="2015091810371700001"; 

总结

上一篇:小白安装登录mysql-8.0.19-winx64的教程图解(新手必看)

栏    目:Mysql

下一篇:MySQL获取所有分类的前N条记录

本文标题:Mysql排序获取排名的实例代码

本文地址:http://www.codeinn.net/misctech/51409.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有