1、limit的基本用法:
SQL 语法:SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
select * from table limit 5;//搜索前5条记录,limit 5 等于 limit 0,5 (limit 偏移量,条数)
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。
LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
select * from table limit 7,2 //表示获取第8条到9条数据
select * from table limit 7,-1 //表示获取从第8条数据开始后面所有的数据
select * from biz_water_user limit 1 offset 1;
select * from biz_water_user limit 1,1;
上面两条sql查询出的数据是一样的;
2、limit 分页查询
MYSQL的limit m n工作原理就是先读取前面m+n条记录,然后抛弃前m条,读后面n条想要的,所以m越大,偏移量越大,性能就越差。
推荐分页查询方法:
1、尽量给出查询的大致范围 SELECT a1,a2,a3... FROM table WHERE id>=20000 LIMIT 10;
2、子查询法 SELECT a1,a2,a3... FROM table WHERE id>= ( SELECT id FROM table LIMIT 20000,1 ) LIMIT 10;