LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。
LIMIT 接受一个或两个数字参数。
参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量
,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。
1、检索前m行记录:
只给定一个参数
SELECT * FROM table LIMIT m;
等价于:
SELECT * FROM table LIMIT 0,m;
2、检索记录行 (m+1)-(m+n)
SELECT * FROM table LIMIT m,n;
3、检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1
SELECT * FROM table LIMIT m,-1; #检索为(m+1)-last
补充:
为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
经常用到在数据库中查询中间几条数据的需求
比如下面的sql语句:
1、selete * from table limit 2,1;
2、 selete * from table limit 2 offset 1;
注意:
1、数据库数据计算是从0开始的
2、offset m是跳过m个数据,limit n是选取n个数据
3、limit m,n 中m表示跳过m个数据,读取n个数据
这两个都是能完成需要,但是他们之间是有区别的:
1、从数据库中第三条开始查询,取一条数据,即第三条数据读取,一二条跳过
2、从数据库中的第二条数据开始查询两条数据,即第二条和第三条。