MySQL 分页查询

分页需求

客户端通过传递currentPage(页码),pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySQL数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下:

比如:

  • 查询第1条到第10条的数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;

  • 查询第10条到第20条的数据的sql是:select * from table limit 10,20; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;

  • 查询第20条到第30条的数据的sql是:select * from table limit 20,30; ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10;

公式

分页公式

通过上面的分析,可以得出符合我们自己需求的分页sql格式是:

1
select * from table limit (currentPage-1) * pageSize,pageSize;

总页数公式

1
int totalPageNum = (totalRecord + pageSize - 1) / pageSize;

其中totalRecord是总记录数:

1
select count(*) FROM tablename
文章作者: GeYu
文章链接: https://nuistgy.github.io/2023/02/15/Mysql分页查询/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yu's Blog