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

posted @ 2021-07-30 09:51  MyDistance  阅读(4358)  评论(0编辑  收藏  举报