八mysql限制返回条数limit方法的使用(分页原理)
1、使用场景
a、topN,N代表正整数,按照一定条件查询,使用limit M,N进行结果条数返回限制。
b、分页查询,原理也是基于limit M,N。2、实现原理,理解分页原理,触类旁通。
limit(n - 1)* pageSize, pageSize
解释:
pageSize:表示一次返回一页的记录数。
( n - 1) * pageSize:表示起始值,可以省略。
n :表示当前页。
总页数 = 数据总数 / 页面大小pageSize 3、参考模拟数据
图1-模拟数据4、应用举例
应用一:直接返回成绩前三的学生信息。 SELECT id,name,class,score from class_score ORDER BY score desc LIMIT 3
查询结果:
首先需要根据score进行排序,然后使用limit返回分数前三的记录。
图2-查询结果
应用二:根据成绩进行降序,实现分页查询,每页显示5条记录,显示第二页。
分析:根据上面公式,因为要显示第2页,那么limit M,N中的N为5,M=( n - 1) * pageSize = ( 2 - 1) * 5=5,即写为limit 5,5 SELECT id,name,class,score from class_score ORDER BY score desc LIMIT 5,5
未限制返回条数前返回的结果,第2页数据的位置:
图3-第二页数据的位置
加上分页条件后:
图4-第2页返回结果
5、新特性
注意:mysql8.0后才新增的特性
书写格式:LIMIT M OFFSET N
M 为返回条数
N 偏移量 SELECT id,name,class,score from class_score ORDER BY score desc LIMIT 2 OFFSET 3
如图:LIMIT 2 OFFSET 3,即2就是返回两条记录,OFFSET后面的数字3,可以理解为当前位置前面还有3条记录,则新返回的数据按顺序从第4条开始返回。要是觉得有点绕,可以动手试一试哦,很简单的。
图5-新特性。