SQL:查询结果限制返回行数
前言
SQL 查询时,查询结果限制返回行数是常见的限制条件,本文主要介绍了SQL中如何利用 limit 进行限制。
本文部分内容参考自:SQL4 查询结果限制返回行数
一、Limit
一句话说明:Limit 子句可以被用于强制 SELECT 语句返回指定的记录条数。
Limit 有两种使用方式:Limit a 和 Limit a,b
1.Limit a
Limit a 表示返回 a 条记录行数目
SQL语句:
select device_id from user_profile limit 2
返回结果:
2.Limit a,b
LIMIT a,b :给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
说明:
(1)为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1。
(2)初始记录行的偏移量是 0(而不是 1),也就是第一个记录行的偏移量是0,第二个是1,以此类推。
SELECT * FROM table LIMIT 10,-1 //检索结果为从第11行数据到最后
//适用于MySql
SELECT * FROM table LIMIT 5,5 //检索结果为从第6行到第10行
注意:Postgres库不支持Limit a,b语法!
二、拓展: Limit a offset b
LIMIT和OFFSET允许你只检索查询剩余部分产生的行的一部分:
LIMIT : 限制取多少条数据。
OFFSET : 跳过多少条数据然后取后续数据。
LIMIT 和 OFFSET 关键字在查询时可以单独使用也可以组合使用, 需要注意的是,无论怎么用,都需要先确定排序方式,否则没有多少意义(因为如果数据是乱序的,取前多少条并不是明确的)。
//跳过前6行,从第7行开始输出5行的内容
SELECT * FROM table LIMIT 5 offset 6 //检索结果为从第7行到第11行