MySQL使用变量完成各种排序案例详细说明
发表时间:2023-07-14 来源:明辉站整理相关软件相关文章人气:
[摘要]变量可以实现各种排序,本文主要介绍了MySQL使用变量实现各种排序,需要的朋友可以参考下,希望能帮助到大家。核心代码--下面我演示下MySQL中的排序列的实现--测试数据CREATE TABLE t...
变量可以实现各种排序,本文主要介绍了MySQL使用变量实现各种排序,需要的朋友可以参考下,希望能帮助到大家。
核心代码
--下面我演示下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
+------+------+-------+
大家学会了吗?赶紧动手尝试一下吧。
相关推荐:
js 各种排序方法和sort方法的区别详解
php中各种排序函数使用方式总结
关于各种排序的详细介绍
以上就是MySQL使用变量实现各种排序实例详解的详细内容,更多请关注php中文网其它相关文章!
学习教程快速掌握从入门到精通的SQL知识。