mysql的分页是通过关键字 offset实现的。 offset有两个参数 pageIndex 和 pageSize; 不过pageIndex是从0开始的。
分页就是将查询的到数据集分成不同的块,每次返回一块,来提供查询速度降低内存占用。 根据数据的不同可以用limit、bitween来实现。
一、基本用法
mysql分页基本语法:SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
可以接收一个或者两个参数,参数必须为整数。
1、给定一个参数:表示的是返回记录数的最大行数
2、给定两个参数:第一个参数表示返回记录行的偏移量,注意偏移量从0开始
第二个参数表示返回的记录行数
二、实际开发常用
由上面的基本分页方法,可知:
select * from table limit 0,10; //表示查询第一页的10条数据,也就是第1 -10条数据
select * from table limit 10,10; //表示查询第二页的10条数据,也就是第11-20条数据
select * from table limit 20,10; //表示查询第三页的10条数据,也就是第21-30条数据。
但是项目环境中,一般传到后台服务中的数据是:currentPage(当前页数,一般从1开始)和 pageSize(记录行数),所以,在实际应用到sql中的时候,必须经过换算页码来进行分页查询。
通用的换算:select * from table limit (currentPage-1)*pageSize,pageSize。
三、说明
MySQL处理分页的时候,一般的逻辑是:
limit 10,10 - 查询出 10 + 10 条数据,然后丢弃掉前 10 条。
limit 20,10 - 查询出 20 + 10 条数据,然后丢弃掉前 20 条。
您好,LIMIT子句可以被用于强制SELECT语句返回指定的记录数,给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目,初始记录行的偏移量是0。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。