mysql limit和offset

小知识 07-24 14:20

mysql里分页一般用limit来实现

limit m, n;

# 表示从跳过 m 条数据开始取n行数据
# m 可选,表示跳过 m 条数据(默认为0)
# n 必选,表示取几行数据

-- 查询前 10 条数据
select * from table_name limit 10;

-- 以上写法等同于
select * from table_name limit 0, 10;

-- 查询 10-20 条数据
select * from table_name limit 10, 10;

当limit后面跟两个参数的时候,第一个数表示要跳过的数量,后一位表示要取的数量;例如 select* from article LIMIT 1,3 就是跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据。

当 limit后面跟一个参数的时候,该参数表示要取的数据的数量;例如 select* from article LIMIT 3  表示直接取前三条数据,类似sqlserver里的top语法。

limit 结合 offset 用法

limit m offset n

# 跳过 n 行数据,取 m 行数据
-- 查询 10-20 条数据
select * from table_name limit 10 offset 10;

当 limit和offset组合使用的时候,limit后面只能有一个参数,表示要取的的数量,offset表示要跳过的数量 。例如 select * from article LIMIT 3 OFFSET 1 表示跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据