分页查询(limit)

分页查询,是一个很常见的,用到的地方很多,比如:淘宝、京东等商城,假如我搜索"显卡",商品列表页会出现很多相关的商品,在PC端也就是电脑上,会很清晰的看见,页面最下方,会有一个"上一页"、"下一页","1、2、3"、"共计多少页码" 等等。

为什么会用到分页呢?

你想呀,淘宝、京东 这类大平台,数据量是超级大的,如果我们查询数据,不做优化,就会导致查询的很慢。 这里额外说一点,优化数据库,不光是从查询上优化,还有表的优化,至于优化,是之后的课题,这里仅说分页。

分页的基础语句:

SELECT * FROM test limit 0,100;

mysql 总分页数 mysql分页参数_mysql 总分页数

 

limit 后面可以跟两个参数:

第一个参数:从哪个位置开始,最小值是0,意思为从第一条数据开始

第二个参数:总共查询多少条数据,图上示例的100,意思就是查询100条数据

那么有同学会问,limit后面一定要跟两个参数吗?

答案是,可以有一个,但不能没有!

咱们去试一下看看效果:

mysql 总分页数 mysql分页参数_语法错误_02

如果limit后面什么参数都不跟,那么就会提示 语法错误。

来试试跟一个呢:

mysql 总分页数 mysql分页参数_mysql 总分页数_03

能发现,和之前是一样的,也是查了100条数据,并且数据是一样的,那么也就可以理解为,是从第一条查询的

limit 后面的参数,两个参数,用英文逗号隔开,并且只能是数字,如果是字符串等其他的,也会报 语法错误!

现在咱们来看看,分页!

第一页,咱们查询的是100条数据,用的语句是 SELECT * FROM `test` limit 0,100;

那么查询第二页呢?

是这样吗?:SELECT * FROM `test` limit 1,100;

NO!

为什么呢?咱们可以先来看看效果:

mysql 总分页数 mysql分页参数_语法错误_04

依旧是100条数据,发现id没,之前的 limit 0,100,id最后是100,现在我们用的是 limit 1,100,id最后是101,只是加了1

只是加了 1条? 这显然不对,因为我们分页,第一页是100条数据,id 是 1到100,那么第二页除了是100条数据,id应该是 101到200 这样才符合!

那么 到底是哪里的问题呢?

其实,是 limit后面的参数,记得上面说的吗,第一个参数 是从哪个位置开始,最小值是0,意思为从第一条数据开始

所以我们要取第二页的数据,应该是 0+100,也就是 limit 100,100

来看看效果:SELECT * FROM `test` limit 100,100;

mysql 总分页数 mysql分页参数_数据库_05

总共查询多少条数据,图上示例的100,意思就是查询100条数据

 以上,就做到了 分页的效果。

难点在于 limit后面的参数,区分好第一个参数和第二个参数即可。