MySQL中row_number()的实现,查询记录排序行数
时间 2019-12-06 标签 mysql row number 实现 查询 记录 排序 行数 栏目 MySQL 繁體版 原文 https://my.oschina.net/u/3087202/blog/1842169在MySQL 8.0之前是有没row_number()这个窗口函数的,若是想实现此功能就须要经过临时变量来计算,如下是一个简单的应用。sql
SELECT t.rn FROM ( SELECT sentry_code, ( SELECT @rownum := @rownum + 1 FROM (SELECT @rownum := 0) r ) AS rn FROM t_integral WHERE sentry_code LIKE '99%' ORDER BY all_amount DESC ) t WHERE t.sentry_code = '99S10002';
其中最关键的一句就是获取到行数,要确保变量赋初始值0,否则会致使行数每次都是1的状况。函数
SELECT @rownum := @rownum + 1 FROM (SELECT @rownum := 0) r
在MySQL 8.0版本就能够像Oracle和SQLServer同样直接使用row_number()这个窗口函数直接计算。code
SELECT t.rn FROM ( SELECT sentry_code, row_number () over (ORDER BY all_amount DESC) rn FROM t_integral WHERE sentry_code LIKE '99%' ) t WHERE t.sentry_code = '99S10002';标签:code,sentry,number,MySQL,SELECT,row From: https://www.cnblogs.com/sexintercourse/p/17719876.html