参数
Limit一般放在sql的最后,用于对数据集的行数进行约束,有两个参数,实例如下:
SELECT
column1,column2,...
FROM
table
LIMIT offset , count;
offset:含义是偏移量,offset=3代表跳过前三条记录,从第四条开始算。
count:指返回的条数。
LIMIT 3,5 就是返回第4-8条数据。
当然第一个参数offset可以省略,LIMIT 5表示返回 5 条记录,省略了offset,offset的默认值是0,就是没有偏移量,返回第1-5条记录。
利用LIMIT的这个特性,可以用来做分页、快速查询等。
效率
先来看下如下sql:
SELECT
column1,column2,...
FROM
table
LIMIT 300000 , 100;
这个sql的效率其实是很低的,因为数据库需要一直“偏移”到300000的位置,才开始取那需要的100条数据,所以一般不要这样写sql,这也可以解释很多app中只提供最近几个月的操作记录或订单。那怎么优化呢?可以先通过其他条件,把前30w不需要的数据通过where条件过滤掉,如where id>=300000等。
其他
LIMIT除了用在SELECT查询语句上,也是支持DELETE和UPDATE语句的,如:
UPDATE
TABLE SET column1='test1'
WHERE type=1234
LIMIT 1;
sql表示只更新type=1234的第一条记录,同样DELETE语句也是同样道理。