本文摘自PHP中文网,作者小云云,侵删。
变量可以实现各种排序,本文主要介绍了MySQL使用变量实现各种排序,需要的朋友可以参考下,希望能帮助到大家。
核心代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 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;
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 |
+
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 |
+
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 |
+
|
大家学会了吗?赶紧动手尝试一下吧。
相关推荐:
js 各种排序方法和sort方法的区别详解
php中各种排序函数使用方式总结
关于各种排序的详细介绍
以上就是MySQL使用变量实现各种排序实例详解的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
关系数据库系统能够实现的三种基本关系运算
mysql count distinct 统计结果去重
mysql服务无法启动怎么解决
详解用select命令在mysql执行查询操作的教程
mysql如何从ibd文件恢复数据
mysql主键是必须的吗
mysql中limit的一些高级用法
mysql主键,外键,非空,唯一,默认约束及创建表的方法
mysql中四种隔离级别的介绍
必看!php开发者常犯的10个mysql错误
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » MySQL使用变量实现各种排序实例详解