SQL之 Limit & Offset

Limit & Offset

来源:https://itdashu.com/docs/sqlbase/11fc9/sqllimitoffset.html

1. 定义

慕课解释: Limit用于对查询结果集数量进行限制;Offset 则常与 Limit 搭配,意为偏移,表示跳过一定数量的记录。

2. Limit

Limit 后面可接受一个参数或者两个参数;当接受一个参数count时,表示返回的结果集最多有 count 条。

语法如下:

SELECT [col] FROM [table_name] LIMIT [count];

其中col表示字段名,table_name表示数据表名称,count代表限制数量。

2.1 例1 Limit 单参数使用

请书写 SQL 语句,返回imooc_user表中年龄最大的3位用户。

分析:

题干中指出只需返回 3 位用户,因此需用到 Limit 限制数量;且年龄应该为最大的 3 位,因此结果集应按照年龄降序排序,即 ORDER BY age DESC。

语句:

整理可得语句如下:

SELECT username,age FROM imooc_user ORDER BY age DESC LIMIT 3;

2.2 例2 Limit 双参数使用

Limit 后面使用双参数时,第一个参数表示偏移量,即 offset,表示从几个记录后开始返回,第二个参数表示最大数量,即 count,表示最多返回几个记录。我们合起来可以理解为,跳过一定数量(offset)的记录,返回最多 count 个记录。

语法如下:

SELECT [col] FROM [table_name] LIMIT [offset],[count];

其中col表示字段名,table_name表示数据表名称,offset是偏移量,count是最大数量。

请书写SQL语句,返回imooc_user表中年龄由大到小的第 2 位到第 4 位用户。

分析:

题干中指出只需返回年龄的第 2 位到第 4 位用户,因此需用到 Limit 限制数量和偏移;且年龄由大到小,因此结果集应按照年龄降序排序,即 ORDER BY age DESC。

语句:

整理可得语句如下:

SELECT username,age FROM imooc_user ORDER BY age DESC LIMIT 1,3;

3. Offset

Offset 必须与 Limit 搭配使用,且二者都必须是单参数形式。Limit 和 Offset 搭配的作用等同于 Limit 使用双参数。

语法如下:

SELECT [col] FROM [table_name] LIMIT [count] OFFSET [offset];

其中col表示字段名,table_name表示数据表名称,offset是偏移量,count是最大数量。

3.1 例3 Limit 搭配 Offset 使用

请书写 SQL 语句,返回imooc_user表中年龄由大到小的第 2 位到第 4 位用户。

分析:

题干中指出只需返回年龄的第 2 位到第 4 位用户,因此需用到 Limit 限制数量,Offset 来表示偏移;且年龄由大到小,因此结果集应按照年龄降序排序,即 ORDER BY age DESC。

语句:

整理可得语句如下:

SELECT username,age FROM imooc_user ORDER BY age DESC LIMIT 3 OFFSET 1;

4. 小结

  • Limit 和 Offset 常搭配用于数据分页,是很多分页工具的核心操作。
  • Limit 其实完全可以替代 Limit + Offset,但考虑到SQL语句的可读性,Limit + Offset的写法更好
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值