mysql分页SQL

在 MySQL 中,实现分页查询通常使用 LIMIT 子句。LIMIT 可以指定返回结果的起始位置和数量,非常适合实现分页功能。

基本语法如下:

sql 复制代码
SELECT 列名 FROM 表名
WHERE 条件
ORDER BY 排序字段 [ASC|DESC]
LIMIT 起始位置, 每页显示数量;

说明:

  1. 起始位置:从第几条记录开始查询(索引从 0 开始)
  2. 每页显示数量:每页要显示的记录条数

示例:

假设我们有一个 users 表,要实现分页查询:

  1. 查询第 1 页,每页显示 10 条记录:
sql 复制代码
SELECT * FROM users
ORDER BY id ASC
LIMIT 0, 10;  -- 从第0条开始,取10条
  1. 查询第 2 页,每页显示 10 条记录:
sql 复制代码
SELECT * FROM users
ORDER BY id ASC
LIMIT 10, 10;  -- 从第10条开始,取10条
  1. 通用分页公式(已知页码和每页条数):
sql 复制代码
-- 页码:pageNum(从1开始)
-- 每页条数:pageSize
SELECT * FROM 表名
ORDER BY 排序字段
LIMIT (pageNum - 1) * pageSize, pageSize;

注意事项:

  • 分页查询通常需要配合 ORDER BY 使用,否则返回的结果顺序可能不一致

  • 当数据量很大时,使用大的偏移量(如 LIMIT 100000, 10)可能会影响性能

  • 在 MySQL 8.0+ 中,也可以使用 LIMIT ... OFFSET ... 语法,与 LIMIT 起始位置, 数量 效果相同:

    sql 复制代码
    SELECT * FROM users LIMIT 10 OFFSET 0;  -- 等同于 LIMIT 0, 10
相关推荐
憧憬成为web高手6 分钟前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学19 分钟前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh2 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
用户71333585156243 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
z123456789863 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD3 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
用户71333585156244 小时前
MySQL - InnoDB 的 Buffer Pool
mysql
TlSfoward4 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记4 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
LabVIEW开发5 小时前
NI Package Manager安装LabVIEW时InternalServerError错误
网络·数据库·labview·labview知识·labview功能·labview程序