前言:
前段时间在写 mybatis-plus 的翻页查询功能的时候突然想到,mysql 语句本身肯定是有翻页查询的功能,所以研究一波。
limit 实现翻页
sql 语句还是正常写,但是要在后面加上 limit 语句的限制
平时我们 limit 这样用:
select * from table where id>0 limit 10;
这默认查询选择 id 大于0 的前 10 条数据
翻页时这么写:
select * from table where id>0 limit num,size;
解释一下 num 和 size 代表意思:
size: 每页显示的数据条数
num: 翻页时查询的起始数据条数下标,和 size 息息相关,听起来有点费解,举个例子
eg:
需求:每页显示10条数据,显示第二页
传参:pageSize=10,page=2
转到 sql 语句中时这么计算:
size = pageSize
num = (page-1)*pageSize
sql 语句最终变成:
select * from table where id>0 limit 10,10;