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

自我控制是最强者的本能-萧伯纳
原文地址:https://www.cnblogs.com/CF1314/p/15078228.html