首页 / MYSQL / MySQL中使用LIMIT分页
MySQL中使用LIMIT分页
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL中使用LIMIT分页,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1712字,纯文字阅读大概需要3分钟。
内容图文
需求:客户端通过传递pageNum(页码)和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伪代码是:select * from table limit (pageNum-1)*pageSize,pageSize。总而言之,我们只需要告诉数据库要从第几行开始拿多少条数据就行了。 但是,limit语句不支持计算,因此,需要从外部传参(pageNum-1)*pageSize的计算结果,即在Java中计算出来。令rowIndex = (pageNum-1)*pageSize,rowIndex常用的计算方法如下://计算行号 public static int getRowIndex(int pageNum, int pageSize){ return (pageNum> 0) ? (pageNum- 1) * pageSize : 0; }
看一段按照开始时间,和结束时间,分页查询数据的Mybatis,SQL语句。
<select id="getAllUsersByTheTwoTimeThree" resultMap="BaseResultMap"> select studentid,telephone,username,vxnumber,othermsg, requiretype,requireA,requireB,examtime,creator,followstate,createTime,updateTime,nextupdateTime,content from user where 1 = 1 <if test="beginTime!=null and endTime!=null"> AND createTime BETWEEN STR_TO_DATE(#{beginTime},'%Y-%m-%d %H:%i:%s') AND STR_TO_DATE(#{endTime},'%Y-%m-%d %H:%i:%s') </if> order by createTime DESC limit ${(currentPage-1)*pageSize},${pageSize} </select>
mybatis 的 sql写法是
limit ${(currentPage-1)*pageSize},${pageSize}
内容总结
以上是互联网集市为您收集整理的MySQL中使用LIMIT分页全部内容,希望文章能够帮你解决MySQL中使用LIMIT分页所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。