limit是用来获取一张表中的一部分数据

案例1:找出员工表中的前5条记录

  1. select * from person limit 5;

以上SQL语句中的 limit 中的 5 是表示从表中下标记录从0开始,查询5条, 等同于下面的语句

select * from person limit 0,5;

image.png

语法:

select * from 表 limit 起始坐标-从0开始, 查询条数-int;

起始坐标没有指定,默认从0开始

示例2: 找出公司薪资前5的员工

现将公司员工按照薪资降序排, 再取前五

select * from person order by salary desc limit 0,5;

image.png

limit 出现在SQL语句的最后位置

案例3: 找出工资排名在[3-9]名的员工
这里的注意事项

  1. limit 下标从0开始 所以, limit 起始坐标是 2
  2. 3-9名, 是要9-3+1 = 7 条记录
select * from person order by salary desc limit 2,7;

mysql中通用的分页SQL

假设
每一页显示3条记录
第1页: 0-起始坐标, 3条 (1-1) 3 = 0
第2页: 3-起始坐标, 3条 (2-1)
3 = 3
第3页: 6-起始坐标, 3条 (3-1)* 3 = 6
第4页: 9-起始坐标, 3条
….

每一页显示 pageSize 条记录

第page页: pageSize * (当前页currentPage - 1), pageSize

select * from person
// 如果要降序排列
order by XXX字段 desc
limit (currentPage - 1) * pageSize, pageSize;