《MySQL如何使用临时变量来排名?》要点:
本文介绍了MySQL如何使用临时变量来排名?,希望对您有用。如果有疑问,可以联系我们。
最近公司由于做运动记录排行榜,然后总结出来如下3中排行方式
值相同, 排名分歧;
值相同, 排名相同, 排名值连续递增;
值相同,排名也相同; 排行增长不持续;
那么用数据库查询如何实现以上操作呢? 小编以MySQL 来实现上述操作.以学生表,按学生年龄这一条件对其操作
表 student
创建表布局
插入学生测试数据
主要思路:
对目标列排序
设置一个临时变量作为rank值, 每次查询递增1
方案一: (值相同, 排名分歧)
SQL(年龄倒序,可以改成ORDER BY age DESC)
办法二:值相同, 排名相同, 排名值持续递增
思路:
(暂存上一条记录的age (@prevRank).如果当前age与其相等,使用与前一记录相同的排名;不然排名加一,并更新@prevRank)
后果图如下所示:
办法三:值相同,排名也相同; 排名值递增不连续(常见)
想法:
(增加一个变量(@incRank)用于记录序号(类似方案一).如果当前age与上一条记录相同,使用与前一记录相同的排名(类似办法二),否则使用序号(@incRank))
后果图:
《MySQL如何使用临时变量来排名?》是否对您有启发,欢迎查看更多与《MySQL如何使用临时变量来排名?》相关教程,学精学透。维易PHP学院为您提供精彩教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/7113.html