MySQL 分页使用 limit 关键字, limit x,y (x 代表从哪条数据开始, y 代表页面大小. MySQL 第一条数据在 limit 计算时索引为 0)
limit 10
前 10 条
limit 0,10
从第 1 条开始的 10 条
limit 10,10
从第 11 条开始的 10 条
limit 100,10
从第 101 条开始的 10 条
数据量大时 (> 千万), 效率低
oracal 分页, 使用 oracle 的特殊列 rownum
- select * from
- (select *,rownum R from
- (select * from a)
实例: 查找入职员工时间排名倒数第三的员工所有信息. limit 2,1 代表选择从第 3 条数据开始的 1 条数据, 即第 3 页数据, 页面大小为 1
select * from employees order by hire_date desc limit 2,1
前 n 条数据, 即从索引 0 开始计算: limit n 或者 limit 0,n
- MySQL> select * from employees order by hire_date desc limit 5;
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- | employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | commission_pct | manager_id | department_id |
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- | 173 | Sundita | Kumar | SKUMAR | 011.44.1343.329268 | 2000-04-21 | SA_REP | 6100.00 | 0.10 | 148 | 80 |
- | 167 | Amit | Banda | ABANDA | 011.44.1346.729268 | 2000-04-21 | SA_REP | 6200.00 | 0.10 | 147 | 80 |
- | 166 | Sundar | Ande | SANDE | 011.44.1346.629268 | 2000-03-24 | SA_REP | 6400.00 | 0.10 | 147 | 80 |
- | 128 | Steven | Markle | SMARKLE | 650.124.1434 | 2000-03-08 | ST_CLERK | 2200.00 | NULL | 120 | 50 |
- | 165 | David | Lee | DLEE | 011.44.1346.529268 | 2000-02-23 | SA_REP | 6800.00 | 0.10 | 147 | 80 |
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- 5 rows in set (0.00 sec)
- MySQL> select * from employees order by hire_date desc limit 0,5;
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- | employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | commission_pct | manager_id | department_id |
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- | 173 | Sundita | Kumar | SKUMAR | 011.44.1343.329268 | 2000-04-21 | SA_REP | 6100.00 | 0.10 | 148 | 80 |
- | 167 | Amit | Banda | ABANDA | 011.44.1346.729268 | 2000-04-21 | SA_REP | 6200.00 | 0.10 | 147 | 80 |
- | 166 | Sundar | Ande | SANDE | 011.44.1346.629268 | 2000-03-24 | SA_REP | 6400.00 | 0.10 | 147 | 80 |
- | 128 | Steven | Markle | SMARKLE | 650.124.1434 | 2000-03-08 | ST_CLERK | 2200.00 | NULL | 120 | 50 |
- | 165 | David | Lee | DLEE | 011.44.1346.529268 | 2000-02-23 | SA_REP | 6800.00 | 0.10 | 147 | 80 |
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- 5 rows in set (0.00 sec)
更多例子
limit 5 前 5 条数据
limit 2,1 第 3 页数据, 页面大小为 1
limit 2,2 第 2 页数据, 页面大小为 2
limit 2,3 第 3 条数据起, 共 3 条数据, 此数据不符合分页数据显示格式
分页显示格式: limit startIndex pageSize
- startIndex = (需要查询的页码数 - 1) * pageSize
- MySQL> select * from employees order by hire_date desc limit 5;
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- | employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | commission_pct | manager_id | department_id |
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- | 173 | Sundita | Kumar | SKUMAR | 011.44.1343.329268 | 2000-04-21 | SA_REP | 6100.00 | 0.10 | 148 | 80 |
- | 167 | Amit | Banda | ABANDA | 011.44.1346.729268 | 2000-04-21 | SA_REP | 6200.00 | 0.10 | 147 | 80 |
- | 166 | Sundar | Ande | SANDE | 011.44.1346.629268 | 2000-03-24 | SA_REP | 6400.00 | 0.10 | 147 | 80 |
- | 128 | Steven | Markle | SMARKLE | 650.124.1434 | 2000-03-08 | ST_CLERK | 2200.00 | NULL | 120 | 50 |
- | 165 | David | Lee | DLEE | 011.44.1346.529268 | 2000-02-23 | SA_REP | 6800.00 | 0.10 | 147 | 80 |
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- 5 rows in set (0.00 sec)
- MySQL> select * from employees order by hire_date desc limit 2,1;
- +-------------+------------+-----------+-------+--------------------+------------+--------+---------+----------------+------------+---------------+
- | employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | commission_pct | manager_id | department_id |
- +-------------+------------+-----------+-------+--------------------+------------+--------+---------+----------------+------------+---------------+
- | 166 | Sundar | Ande | SANDE | 011.44.1346.629268 | 2000-03-24 | SA_REP | 6400.00 | 0.10 | 147 | 80 |
- +-------------+------------+-----------+-------+--------------------+------------+--------+---------+----------------+------------+---------------+
- 1 row in set (0.00 sec)
- MySQL> select * from employees order by hire_date desc limit 2,2;
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- | employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | commission_pct | manager_id | department_id |
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- | 166 | Sundar | Ande | SANDE | 011.44.1346.629268 | 2000-03-24 | SA_REP | 6400.00 | 0.10 | 147 | 80 |
- | 128 | Steven | Markle | SMARKLE | 650.124.1434 | 2000-03-08 | ST_CLERK | 2200.00 | NULL | 120 | 50 |
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- 2 rows in set (0.00 sec)
- MySQL> select * from employees order by hire_date desc limit 2,3;
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- | employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | commission_pct | manager_id | department_id |
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- | 166 | Sundar | Ande | SANDE | 011.44.1346.629268 | 2000-03-24 | SA_REP | 6400.00 | 0.10 | 147 | 80 |
- | 128 | Steven | Markle | SMARKLE | 650.124.1434 | 2000-03-08 | ST_CLERK | 2200.00 | NULL | 120 | 50 |
- | 165 | David | Lee | DLEE | 011.44.1346.529268 | 2000-02-23 | SA_REP | 6800.00 | 0.10 | 147 | 80 |
- +-------------+------------+-----------+---------+--------------------+------------+----------+---------+----------------+------------+---------------+
- 3 rows in set (0.00 sec)
来源: https://www.cnblogs.com/InternetJava/p/12725963.html