1 概述
1. 目的:'限制要取出来的 记录行数'
2. 语法
(1) limit n : 前 n 条记录 -- 等同于 0, n
(2) limit n, m : 从 n 之后,取 m 条记录 -- 请注意,不含 n 哦,以下同理
(3) limit n offset m : 从 m 之后,取 n 条记录 -- 等同于 m, n
2 示例
2.1 基础
select * from table limit 3; -- 前三条记录 1, 2, 3
select * from table limit 1, 3; -- 记录行2-4 2, 3, 4
2.2 分页
结论 - 格式
select *
from table
limit (pagNum- 1) * pageSize, pageSize;
-- pagNum 页面数,从 1 开始
-- pageSize 每页展示的记录条数
推理演示:
-- 检索 1 - 10 行记录
select * from table limit 0, 10 --> select * from table limit (1 - 1) * 10, 10
-- 检索 11 - 20 行记录
select * from table limit 10, 10 --> select * from table limit (2 - 1) * 10, 10
-- 检索 21 - 30 行记录
select * from table limit 20, 10 --> select * from table limit (3 - 1) * 10, 10
3 扩展
3.1 取最后 10 条记录
select *
from table
order by xx desc -- 增加一个 倒序 即可
limit 10;
3.2 显示行号
-- 说明:mysql 没有 类似 Oracle 中的 rownum
-- 但可通过自定义变量来实现
select @rownum := @rownum + 1 as rownum,
t.*
from table t,
( select @rownum := 0 ) r -- 重置 rowno 值
;