MySQL分页查询语句的易混点

在查询我们想要的结果集时,有时候返回的结果集中包含的记录数量很大,不仅影响查询效率,而且我们只需要查看其中一部分记录就可以达到目的,这时就要对结果集进行分页,让其只返回结果集的一部分。

但是在使用分页查询的时候,又搞不清对应位置的数字表示什么含义,真是等到用时方恨不知,故以此文以作记录,方便日后查看。

常用分页查询的方式有两种:LIMITLIMIT .. OFFSET ...

第一种:LIMIT

语句的书写格式是:

SELECT * FROM  information_demo  LIMIT 1,3 ;

我们可以看到,LIMIT 后面紧跟了两个数字,此时第一个数字表示的含义是:要跳过的记录数量 ;第二个数字表示的含义是:要取的记录数量。

所以上面这个查询语句整体的意思是:

在 information_demo 这个表中,跳过1条数据,从第2条数据开始取,取3条数据,也就是取第 2、3、4 这三条数据。

第二种:LIMIT .. OFFSET ...

offset 在中文里有“偏移量”的意思,这样就能更好地记住 offset 后面的数字所表示的含义。

语句的书写格式是:

SELECT * FROM  information_demo  LIMIT 3 OFFSET 1 ;

此时 LIMIT OFFSET 组合使用LIMIT  后面只紧跟一个数字,表示:要取的数量 ;OFFSET后面的数字表示:要跳过的记录数量。

所以上面这个查询语句整体的意思是:

在 information_demo 这个表中,跳过1条数据,从第2条数据开始取,取3条数据,也就是取第 2、3、4 这三条数据。

说明:在第二种的语法里, OFFSET 是可选的,当 OFFSET 后面数字为0(即不需要跳过数据)时OFFSET 可省略,直接写成 LIMIT  ...   

eg : 

SELECT * FROM  information_demo  LIMIT 3 ;

-- 从这个表里取3条数据,展示它们所有列的信息

我们发现:

以上两种分页查询可以互相转换,转换的规则就是前后两个数字对调位置。

注:分页查询时,数据库服务器是  在先查询到的结果集中按照我们的要求跳过一定数量后,再依次去取数,而这个先查询到的结果集本身是有顺序的。所以 offset  后面的数字越大,数据库服务器在查询时需要跳过的数据量就越多,查询效率就会越低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值