mysql中limit与offset的用法

标识符说明

  • limit:最大数量
  • offset:偏移量

使用案例

  • 需求:

查找employees里入职员工时间排名倒数第三的员工所有信息

  • 建表语句
CREATE TABLE `employees` (
	`emp_no` int(11) NOT NULL, 
	`birth_date` date NOT NULL,
	`first_name` varchar(14) NOT NULL,
	`last_name` varchar(16) NOT NULL,
	`gender` char(1) NOT NULL,
	`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));
  • 查询语句
//如果不使用offset,可以用子查询,明显影响效率
select * from (select * from employees order by hire_date desc limit 3) as tmp order by tmp.hire_date asc limit 1;

//使用limit+offset
SELECT * FROM employees ORDER BY hire_date DESC LIMIT 1 offset 2;

//仅使用limit,其实与上述一样
SELECT * FROM employees ORDER BY hire_date DESC LIMIT 2,1;

使用方法

查询从第b开始的最多a条记录

  • SELECT * FROM table ORDER BY column DESC LIMIT a offset b;
  • SELECT * FROM table ORDER BY column DESC LIMIT b,a;

其他使用场景(分页查询)

查询第page页pageSize条数据

  • SELECT * FROM table ORDER BY column DESC LIMIT pageSize offset (pageSize*page);
  • SELECT * FROM table ORDER BY column DESC LIMIT (pageSize*page),pageSize;
posted @ 2021-03-25 13:38  时间会有答案  阅读(254)  评论(0编辑  收藏  举报