MySQL(8.0) row_number() 函数的使用


MySQL(8.0) row_number() 函数的使用

手动分页查询的时候接触到了 row_number() 函数。

1、介绍

row_number() 函数多用于对数据进行排序,返回的数据项多增加一个序号。

如:按照年龄对用户进行排序,并返回序号:

select row_number() over( order By age) as rownumber, u.name, u.age, u.email from user u

image-20210730093606098

2、分页查询

上文可知 row_number() 可以排序并返回序号,想实现分页查询可在外面嵌套一个 select,根据序号对数据进行限制。

如;返回五名年龄最小的用户:

select * from 
(select row_number() over( order By age) as rownumber, u.name, u.age, u.email from user u) uu 
where uu.rownumber <= 5

image-20210730093843158

手动分页查询一般需要传入两个参数,page 代表第几页, pageSize 代表一页数量,

当 page = 2, pageSize = 3 时,sql大致如下:

select uu.* from 
(select row_number() over( order By age) as rownumber, u.name, u.age, u.email from user u) uu 
where uu.rownumber >(2-1)*3 and uu.rownumber <=2*3

image-20210730094524322


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM