• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
厕层柴 显示全部楼层 发表于 2021-10-26 12:29:41 |阅读模式 打印 上一主题 下一主题
代码如下所示:
  1. SELECT @i:=@i+1 rowNum,
  2. if(@total=t.s_score,@rank,@rank:=@i) rank,@total:=t.s_score,
  3. t.*
  4. from(
  5. 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
  6. )t,(select @i:=0,@rank:=0,@total:=null) s ;
  7. SELECT @i:=@i+1 rowNum,
  8. if(@total=t.s_score,@rank,@rank:=@rank+1) rank,@total:=t.s_score,
  9. t.*
  10. from(
  11. 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
  12. )t,(select @i:=0,@rank:=0,@total:=null) s ;
复制代码
Mysql 获取效果排序后的名次
着实就是输出mysql的排序后的行号
RT:获取单个用户的效果在所有效户效果中的排名
可以分两步:
1、查出所有效户和他们的效果排名
  1. select id,maxScore,(@rowNum:=@rowNum+1) as rowNo
  2. from t_user,
  3. (select (@rowNum :=0) ) b
  4. order by t_user.maxScore desc  
复制代码
2、查出某个用户在所有效户效果中的排名
  1. select u.rowNo from (
  2. select id,(@rowNum:=@rowNum+1) as rowNo
  3. from t_user,
  4. (select (@rowNum :=0) ) b
  5. order by t_user.maxScore desc ) u where u.id="2015091810371700001";
复制代码
总结
以上所述是小编给大家介绍的Mysql排序获取排名,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时复兴大家的。在此也非常感谢大家对草根技术分享网站的支持!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作