limit 子句可以被用于强制 select 语句返回指定的记录。limit 接受一个或两个参数。参数必须是整数常量。
limit n : 返回 n 条记录
limit n,m : 忽略前 n 条记录后,返回接下来 m 条记录
可以指定 m 为 -1,即 limit n,-1 为返回第n+1条及之后所有记录
limit 实现分页:
select * from 表名 limit (页数-1)* 每页显示记录数,每页显示记录数;
在数据库中有大量数据时适用,只取出当前页显示的记录,优化查询效率
实操遇到的问题:
select * from goods where id>10 limit 3 ; 与 select * from goods limit 10,3 ; 的区别
( 其中id为主键、自增 )
前者是直接通过索引跳过 id<=10 的记录后取3条记录
后者是查询完前十个后不显示,再显示后面查的3条记录
这样看来前者效率高于后者(个人学习得出,有误请纠正,谢谢)
在明确字段值的时候可以直接用前者,但只知道数量时,也可以用子查询对其进行优化
select * from goods where id>=(select id from goods limit 10,1) limit 3