MySQL使用变量实现各种排序
发布时间 - 2026-01-11 01:12:11 点击率:次核心代码
--下面我演示下MySQL中的排序列的实现
--测试数据
CREATE TABLE tb
(
score INT
);
INSERT tb SELECT
5 UNION ALL SELECT
4 UNION ALL SELECT
4 UNION ALL SELECT
4 UNION ALL SELECT
3 UNION ALL SELECT
2 UNION ALL SELECT
1;
--1.row_number式的排序
SET @row_number =0;
SELECT @row_number := @row_number+1 AS row_number,score
FROM tb
ORDER BY score DESC ;
+------------+-------+
| row_number | score |
+------------+-------+
| 1 | 5 |
| 2 | 4 |
| 3 | 4 |
| 4 | 4 |
| 5 | 3 |
| 6 | 2 |
| 7 | 1 |
+------------+-------+
--2.dense_rank式的排序
SET @dense_rank = 0,@prev_score = NULL;
SELECT @dense_rank :=IF(@prev_score=score,@dense_rank,@dense_rank+1) AS decnse_rank,
@prev_score := score AS score
FROM tb
ORDER BY score DESC ;
+-------------+-------+
| decnse_rank | score |
+-------------+-------+
| 1 | 5 |
| 2 | 4 |
| 2 | 4 |
| 2 | 4 |
| 3 | 3 |
| 4 | 2 |
| 5 | 1 |
+-------------+-------+
--3.rank式的排序
SET @row=0,@rank=0,@prev_score=NULL;
SELECT @row:=@row+1 AS ROW,
@rank:=IF(@prev_score=score,@rank,@row) AS rank,
@prev_score:=score AS score
FROM tb
ORDER BY score DESC;
+------+------+-------+
| ROW | rank | score |
+------+------+-------+
| 1 | 1 | 5 |
| 2 | 2 | 4 |
| 3 | 2 | 4 |
| 4 | 2 | 4 |
| 5 | 5 | 3 |
| 6 | 6 | 2 |
| 7 | 7 | 1 |
+------+------+-------+
# MySQL
# 变量
# 各种排序
# MySQL 使用自定义变量进行查询优化
# mysql查询语句中用户变量的使用代码解析
# MySQL中使用自定义变量 编写偷懒的UNION示例
# MySQL 中定义和使用变量的方法
# 测试数据
# score
# tb
# INT
# UNION
# SELECT
# INSERT
# TABLE
# brush
# class
# pre
# CREATE
# sql
# decnse_rank
# NULL
# prev_score
# ROW
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
米侠浏览器网页背景异常怎么办 米侠显示修复
成都网站制作公司哪家好,四川省职工服务网是做什么用?
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
Laravel如何使用.env文件管理环境变量?(最佳实践)
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
如何快速生成橙子建站落地页链接?
深圳网站制作培训,深圳哪些招聘网站比较好?
高防服务器租用如何选择配置与防御等级?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
php打包exe后无法访问网络共享_共享权限设置方法【教程】
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
如何在橙子建站上传落地页?操作指南详解
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
zabbix利用python脚本发送报警邮件的方法
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
免费视频制作网站,更新又快又好的免费电影网站?
JavaScript实现Fly Bird小游戏
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
Android Socket接口实现即时通讯实例代码
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
QQ浏览器网页版登录入口 个人中心在线进入
,南京靠谱的征婚网站?
如何彻底卸载建站之星软件?
Java垃圾回收器的方法和原理总结
Laravel Fortify是什么,和Jetstream有什么关系
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel API资源类怎么用_Laravel API Resource数据转换
Laravel如何记录自定义日志?(Log频道配置)
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
如何快速搭建自助建站会员专属系统?
简历没回改:利用AI润色让你的文字更专业
Swift开发中switch语句值绑定模式
Python结构化数据采集_字段抽取解析【教程】
昵图网官方站入口 昵图网素材图库官网入口
如何正确选择百度移动适配建站域名?
南京网站制作费用,南京远驱官方网站?
如何用花生壳三步快速搭建专属网站?
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
浅谈Javascript中的Label语句
Laravel Docker环境搭建教程_Laravel Sail使用指南
Laravel如何使用Gate和Policy进行授权?(权限控制)
使用spring连接及操作mongodb3.0实例
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
如何在 Pandas 中基于一列条件计算另一列的分组均值

