• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

变量可以实现各种排序,本文主要介绍了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 SELECT1;--1.row_number式的排序SET @row_number =0;<em style="color:transparent">本文来源gao.dai.ma.com搞@代*码#网</em>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 scoreFROM 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使用变量实现各种排序实例详解的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL使用变量实现各种排序实例详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址