描述
分页查询employees表,每5行一页,返回第2页的数据
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`));
示例1
输入:
drop table if exists `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`)); INSERT INTO employees VALUES(10001,'1953-09-02','Georgi','Facello','M','1986-06-26'); INSERT INTO employees VALUES(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21'); INSERT INTO employees VALUES(10003,'1959-12-03','Parto','Bamford','M','1986-08-28'); INSERT INTO employees VALUES(10004,'1954-05-01','Chirstian','Koblick','M','1986-12-01'); INSERT INTO employees VALUES(10005,'1955-01-21','Kyoichi','Maliniak','M','1989-09-12'); INSERT INTO employees VALUES(10006,'1953-04-20','Anneke','Preusig','F','1989-06-02'); INSERT INTO employees VALUES(10007,'1957-05-23','Tzvetan','Zielinski','F','1989-02-10'); INSERT INTO employees VALUES(10008,'1958-02-19','Saniya','Kalloufi','M','1994-09-15'); INSERT INTO employees VALUES(10009,'1952-04-19','Sumant','Peac','F','1985-02-18'); INSERT INTO employees VALUES(10010,'1963-06-01','Duangkaew','Piveteau','F','1989-08-24'); INSERT INTO employees VALUES(10011,'1953-11-07','Mary','Sluis','F','1990-01-22');
复制输出:
10006|1953-04-20|Anneke|Preusig|F|1989-06-02 10007|1957-05-23|Tzvetan|Zielinski|F|1989-02-10 10008|1958-02-19|Saniya|Kalloufi|M|1994-09-15 10009|1952-04-19|Sumant|Peac|F|1985-02-18 10010|1963-06-01|Duangkaew|Piveteau|F|1989-08-24
-- 题目:分页查询employees表,每5行一页,返回第2页的数据
-- 方法一:LIMIT
/*LIMIT 语句结构: LIMIT X,Y
Y :返回几条记录
X:从第几条记录开始返回(第一条记录序号为0,默认为0)
SELECT *
FROM employees
LIMIT 5,5
一般分页使用 order by + limit 。本题要求5行/页,则第二页显示第6-10行。
limit x,y x:偏移量 y:要获取的个数
limit 5,5; 偏移量为5,取5条记录
limit y offset x
limit 5 offset 5; 取5条记录,偏移量为5
*/
select * from employees
order by emp_no
limit 5,5;
/*拓展:若每页显示n条记录,要显示第i页数据,则可以用 limit n*(i-1),n
因此,得到如下代码
select * from employees
order by emp_no
limit 5*(2-1),5;
*/