加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL如何使用临时变量来排名?

发布时间:2020-12-12 03:07:53 所属栏目:MySql教程 来源:网络整理
导读:《MySQL如何使用临时变量来排名?》要点: 本文介绍了MySQL如何使用临时变量来排名?,希望对您有用。如果有疑问,可以联系我们。 最近公司由于做运动记录排行榜,然后总结出来如下3中排行方式 值相同,排名分歧; 值相同,排名相同,排名值连续递增; 值相同,排名

《MySQL如何使用临时变量来排名?》要点:
本文介绍了MySQL如何使用临时变量来排名?,希望对您有用。如果有疑问,可以联系我们。

最近公司由于做运动记录排行榜,然后总结出来如下3中排行方式

  • 值相同,排名分歧;

  • 值相同,排名相同,排名值连续递增;

  • 值相同,排名也相同; 排行增长不持续;

那么用数据库查询如何实现以上操作呢? 小编以MySQL 来实现上述操作.以学生表,按学生年龄这一条件对其操作

表 student

创建表布局

MySQL如何使用临时变量来排名?

插入学生测试数据

MySQL如何使用临时变量来排名?

主要思路:

对目标列排序

设置一个临时变量作为rank值,每次查询递增1

方案一: (值相同,排名分歧)

SQL(年龄倒序,可以改成ORDER BY age DESC)

MySQL如何使用临时变量来排名?

办法二:值相同,排名值持续递增

思路:

(暂存上一条记录的age (@prevRank).如果当前age与其相等,使用与前一记录相同的排名;不然排名加一,并更新@prevRank)

MySQL如何使用临时变量来排名?

后果图如下所示:

MySQL如何使用临时变量来排名?

办法三:值相同,排名也相同; 排名值递增不连续(常见)

想法:

(增加一个变量(@incRank)用于记录序号(类似方案一).如果当前age与上一条记录相同,使用与前一记录相同的排名(类似办法二),否则使用序号(@incRank))

MySQL如何使用临时变量来排名?

后果图:

MySQL如何使用临时变量来排名?

《MySQL如何使用临时变量来排名?》是否对您有启发,欢迎查看更多与《MySQL如何使用临时变量来排名?》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读