MySQL使用变量实现各种排序实例详解


本文摘自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

--下面我演示下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使用变量实现各种排序实例详解的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

在vps上如何管理并创建mysql数据库

浅谈mysql清空表数据的两种方式和区别

实例详解mysql数据库的设计问题

mysql千万级数据分页查询性能优化_mysql

怎样使用mysql命令行修改mysql登录密码

root密码忘记该怎么办

理解mysql变量和条件

mysql中如何配置ssl_key和ssl-cert与ssl-ca的路径以及建立ssl连接的实例

mysql有哪些常见的存储引擎

mysql中语句执行的顺序以及查询处理阶段的分析

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...