SQL MySQL LIMIT 语法详解:偏移量与数量查询

今天早睡
今天早睡
发布时间:2026-10-15| 3人浏览过
原创

本文介绍 MySQL 数据库中如何使用 LIMIT 语句控制查询结果集的行数。内容涵盖单参数简单截取、双参数定位截取以及 OFFSET 关键字的精确操作对比,附带排序(ORDER BY)的必要说明。

1. LIMIT 基础语法与单参数用法

在处理数据库查询时,如果只想获取特定数量的记录,最常用的是 LIMIT 子句配合一个数值参数。

第1步:定义单参数 LIMIT 语法

目的是仅查看表的前若干条数据。基本结构如下:

SELECT 字段列表 FROM 表名 (WHERE 条件) (ORDER BY 排序字段 ASC|DESC) LIMIT n;
  • n:为阿拉伯数字,代表直接读取结果集最前面的 n 行。
  • 括号内的 WHERE 或 ORDER BY 可选,省略则对全表未排序数据进行物理顺序截取(通常不推荐)。

第2步:执行获取前 N 行数据

以下是三个典型的业务场景操作:

场景 A:无脑获取前 6 行(适用于测试数据结构或随机抽样)

select ID, name, age
from table
limit 6;

场景 B:按学号升序获取前 6 行(常用需求)

目的通常是取得最新录入或排名靠前的学生信息。必须先使用 ORDER BY 确立排序规则:

select ID, name, age
from table
order by ID ASC
limit 6;

场景 C:按成绩/名称降序获取前 100 行

select ID, name, age
from table
order by name desc
limit 100;

2. LIMIT 高级用法:跳过 M 行后取 N 行

当我们需要进行翻页操作,或者排除掉头部干扰数据时,需要使用带有两个参数的 LIMIT。

第3步:掌握双参数语法 LIMIT m, n

该语法的含义是:忽略结果集中的前 m 行,然后从第 m+1 行开始,连续向后获取 n 行数据。

select * from 表名 
limit m, n;
  • m:要跳过的行数(Offset)。
  • n:实际返回的行数(Count)。

第4步:执行“从第 3 到 102 行”的数据提取

假设需要获取某列表中排序后的第 3 条到第 102 条记录(共 100 条)。计算方式:起始索引为 2(因为第1、2条被跳过),目标长度为 100。

-- 目标:跳过前2行,获取接下来的100行(即第3-102行)
select ID, name, age
from table
order by ID ASC
limit 2, 100;

注意事项:在进行此类定位查询时,务必包含 ORDER BY 子句,否则每一页的结果顺序可能因数据库内部存储状态而变得不稳定。

3. 深度辨析:LIMIT a, b 与 LIMIT b OFFSET a

许多初学者容易混淆这两种写法的读入顺序和偏移基准,这是造成“少查一条”或“多查一条”的主要原因。

第5步:理解标准的双参数形式

-- 写法 A
select * from table limit 2, 1;

解析:这里的第一个参数 2 代表偏移量(Skip 2),第二个参数 1 代表限制条数(Select 1)。即:跳过开头 2 条(第1、2条),从第 3 条开始读取 1 条信息。

第6步:理解带 OFFSET 关键字的形式

-- 写法 B
select * from table limit 2 offset 1;

解析:OFFSET 紧跟的是开始读取的行数。即:跳过(不包括)第 1 行,从第 2 行开始往后读取 limit 后面的 2 条信息(即读取第 2、3 行)。

语法类型参数意义操作行为描述
limit 2, 1m=2, n=1跳过2行,取1行(结果是第3行)
limit 1 offset 2a=2, b=1从第2行开始,取1行(结果是第2行)

总结

以上就是 SQL 中 MySQL LIMIT 获取限制行数的详细内容,更多关于 MySQL 查询优化与 SQL 技巧的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。