mysql limit用法分页查询
时间: 2025-06-06 22:18:01 浏览: 18
### MySQL LIMIT 分页查询用法示例
#### 基本概念
在 MySQL 中,`LIMIT` 关键字用于限制查询结果返回的行数。分页查询是 `LIMIT` 的典型应用场景之一,通常结合 `OFFSET` 或直接使用两个参数来实现[^1]。
#### 语法形式
以下是常用的 `LIMIT` 分页查询语法:
1. `LIMIT 起始索引, 记录数`:从指定的起始索引开始,返回指定数量的记录。
2. `LIMIT 记录数 OFFSET 起始索引`:跳过指定数量的记录后,返回指定数量的记录。
3. 简单形式 `LIMIT 记录数`:仅返回指定数量的记录,从第 0 行开始。
#### 示例代码
以下是一些具体的分页查询示例:
1. **查询所有记录**:
```sql
SELECT * FROM employees;
```
2. **查询第一页数据(每页显示 5 条记录)**:
```sql
SELECT * FROM employees LIMIT 0, 5; -- 起始索引为 0,返回 5 条记录[^1]
```
3. **查询第二页数据(每页显示 5 条记录)**:
```sql
SELECT * FROM employees LIMIT 5, 5; -- 起始索引为 5,返回 5 条记录[^1]
```
4. **查询第三页数据(每页显示 5 条记录)**:
```sql
SELECT * FROM employees LIMIT 10, 5; -- 起始索引为 10,返回 5 条记录[^1]
```
5. **使用 OFFSET 实现相同功能**:
```sql
SELECT * FROM employees LIMIT 5 OFFSET 10; -- 跳过前 10 条记录,返回接下来的 5 条记录[^3]
```
6. **动态分页查询公式**:
假设当前页码为 `currentPage`,每页显示的记录数为 `pageSize`,则分页查询的起始索引计算公式为:
```sql
index = (currentPage - 1) * pageSize
```
示例:
```sql
-- 当 currentPage=3, pageSize=5 时
SELECT * FROM employees LIMIT 10, 5; -- 起始索引为 10,返回 5 条记录[^2]
```
#### 注意事项
- **起始索引从 0 开始**:在 `LIMIT` 查询中,起始索引默认从 0 开始。
- **性能优化**:对于大数据量表,`LIMIT` 结合 `OFFSET` 可能导致性能问题,建议通过索引优化查询[^3]。
- **结合排序**:为了确保分页结果的一致性,通常需要结合 `ORDER BY` 子句使用[^1]。
#### 示例:带排序的分页查询
```sql
SELECT * FROM employees ORDER BY salary DESC LIMIT 10, 5; -- 按工资降序排列,跳过前 10 条记录,返回接下来的 5 条记录
```
阅读全文
相关推荐

















