基本使用
select * from table limit m,n # m从0开始,n代表取的条数
select * from tablename limit 2,4 # 即从第3条开始,取4条记录
取前5条记录,注意没有从 0 开始
select * from emp limit 5;
从某条记录开始,取剩余所有的记录
select * from emp limit 5,-1; #从第六行开始,取后面所有的记录
注意:limit的偏移量越大,分页的效率就越低
通过子查询分页来提高分页的效率
方式一:
SELECT * FROM emp WHERE empno > (
SELECT empno FROM emp limit 10000,1) LIMIT 10
方式二:
SELECT * FROM emp e
INNER JOIN (select id from emp limit 10000, 10) m
ON e.empno = m.empno
因为子查询是基于索引完成查询的,而一般的查询是基于数据文件完成,数据量大的情况下,一般的查询IO开销较大