分页原理
所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件。
优点
约束返回结果的数量可以 减少数据表的网络传输量 ,也可以 提升查询效率 。如果我们知道返回结果只有 1 条,就可以使用 LIMIT 1 ,告诉 SELECT 语句只需要返回一条记录即可。这样的好处就是 SELECT 不需 要扫描完整的表,只需要检索到一条符合条件的记录即可返回。
MySQL中使用 LIMIT 实现分页
格式: LIMIT [位置偏移量,] 行数
第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移 量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是0,第二条记录的位置偏移量是 1,以此类推);第二个参数“行数”指示返回的记录条数。
SELECT employee_id,last_name, salary
FROM employees
LIMIT 0,2; # 偏移量为0,显示两条数据
运行结果如下所示:
分页显式公式:(当前页数-1)*每页条数,每页条数
SELECT employee_id,last_name, salary
FROM employees
LIMIT 2,2; # 第二页
运行结果如下所示:
声明顺序
注:LIMIT 子句必须放在整个SELECT语句的最后,如下所示!
SELECT employee_id,last_name, salary
FROM employees
WHERE salary > 6000
ORDER BY salary DESC
LIMIT 0,10;
运行结果如下所示:
MySQL 8.0新特性
MySQL 8.0中可以使用“LIMIT 3 OFFSET 4”,意思是获取从第5条记录开始后面的3条记录,和“LIMIT 4,3;”返回的结果相同,具体如下所示。
SELECT employee_id,last_name, salary
FROM employees
WHERE salary > 6000
ORDER BY salary DESC
LIMIT 10 OFFSET 0;
# 与上图结果一致