MYSQL分页问题。求解答

默认第一次加载10条数据。当我点击加载更多时候。后面都20条数据显示。
这样的话 应该怎么处理数据才不会漏掉。

可以在接受数据的那里进行拼接,将每次查询到的数据放在一起显示到页面

记录下每次查询最后的页码和最新记录的id
查询数据库,没有更新的数据,那么返回下一个分页,否则重新分页,再返回

select* from table limit LIMIT start, pageSize; //start 分页开始值,pageSize查询的条数,比如第一条到第10条select* from table limit LIMIT 0 , 10;比如第20条到第30条select* from table limit LIMIT 20, 10;

就按照每页10条的查询数据,只是显示的时候除了第一页,其它都显示两页的数据

 SELECT * FROM table LIMIT 10*(n-1),10*(n-1)+10; // 检索记录行 ,n是你的页数,10是一页显示的数据条数;limit 0,5 查询前五条数据

举个列子,我查询一个用户表,第一次查询前面10条(SELECT * FROM users WHERE id >0 ORDER BY id ASC LIMIT 0,10),
那么第二次查询后面10条,就应该是从第11条开始到第20条结束(SELECT * FROM users WHERE id >0 ORDER BY id ASC LIMIT 10,10),
查询语句中,我们传一个参数page,第一次page=1,第二次page=2,每次查询条数为10,SELECT * FROM users WHERE id >0 ORDER BY id ASC LIMIT ((page-1)*10,10
能看懂吧

PageHelper这个插件你可以试试
PageHelper.startPage(1,10); 1代表你的页数 10 代表你每页显示的数据
你的点击更多的时候 你就将10改为20就行了 以后每页就是20

记录每一次的最后一个id,下一次就从这个id继续扫。前提是你的查询sql每次都是一样的顺序结果,比如有order by这种 就可以了

select * from table t where 1=1 limit startRow,pageSize; //分页查询,前端必须要传pageIndex(第几页)和pageSize(每页显示数量)两个参数,第一次加载pageIndex设置成1,pageSize传10,startRow开始行数=(pageIndex-1)*pageSize

使用mybatis/mybatic-plus分页插件,很方便的

在页面设置一个隐藏域,默认为10,点击加载更多设置隐藏域为20为pagesize。传到后台就可以了。

判断当前点击次数或者是页数去查询就可以了吧 一楼的方法也很好

为什么要给自己找麻烦呢。加一个总数不就好了嘛。

如果是你是用id 倒叙排列,增/删数据你是不是都需要重新计算分页值。

SELECT * FROM table LIMIT 10*(n-1),10*(n-1)+10; // 检索记录行 ,n是你的页数,10是一页显示的数据条数;limit 0,5 查询前五条数据

同楼上,我用的也是mybatis/mybatic-plus这个插件,挺好用的

使用分页类可以实现这个功能呀

用一个分页工具类把,参考:

https://gitee.com/thinkgem/jeesite/blob/master/src/main/java/com/thinkgem/jeesite/common/persistence/Page.java