加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql 分页_MySQL如何实现分页查询

发布时间:2022-10-12 14:30:47 所属栏目:MySql教程 来源:互联网
导读: 一般情况下在MySQL中进行分页查询时,会用到limit查询,而且在查询中都会使用到order by来进行排序。接下来将具体介绍MySQL是如何实现分页查询的
分页需求:
客户端通过传递start(页码),l

一般情况下在MySQL中进行分页查询时,会用到limit查询,而且在查询中都会使用到order by来进行排序。接下来将具体介绍MySQL是如何实现分页查询的

分页需求:

客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,MySql数据库提供分页的函数有limit m,n,但是该函数的用法和我们的需求不一样,所以就需要根据实际情况去改写适合自己的分页语句。例

查询第1条到第10条的数据的sql是:

select * from table limit 0,10;

对应我们的需求就是查询第一页的数据:

select * from table limit (1-1)*10,10;

从上面的分析我们可以得出分页sql的格式是:

select * from table limit (start-1)*limit,limit;

其中start是页码,limit是每页显示的条数。

建立主键或者唯一索引

在数据量较小的时候使用 limit 进行数据分页在性能上面不会有明显的缓慢,但是当数据量达到了万级或百万级时mysql分页,sql语句的性能将会影响数据的返回。这是就要使用主键或者是唯一索引来代替limit进行数据分页

例:返回10到50之间的数据

设主键或唯一索引为demo_id

select * from table where demo_id > (pageNo-1)*pageSize limit pageSize;

基于数据再排序

当需要返回的信息要按顺序或者逆序时,就需要对上面的数据进行排序。可用order by ASC表示顺序,order byDESC表示逆序,一般情况下默认的为顺序

例:返回的数据依照demo_id的顺序进行排列

select * from table where demo_id > (pageNo-1)*pageSize order by demo_id limit pageSize;

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!