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
相关推荐
n***s9092 小时前
【MySQL基础篇】概述及SQL指令:DDL及DML
sql·mysql·oracle
爬山算法2 小时前
Redis(158)Redis的主从同步问题如何解决?
数据库·redis·缓存
jnrjian5 小时前
FRA中 keep的backup set 不保险
sql·oracle
2501_941148155 小时前
多语言微服务架构与边缘计算技术实践:Python、Java、C++、Go深度解析
数据库
计算机毕设小月哥6 小时前
【Hadoop+Spark+python毕设】智能制造生产效能分析与可视化系统、计算机毕业设计、包括数据爬取、Spark、数据分析、数据可视化、Hadoop
后端·python·mysql
w***z506 小时前
MYSQL 创建索引
数据库·mysql
j***51896 小时前
Java进阶,时间与日期,包装类,正则表达式
java·mysql·正则表达式
章鱼哥7307 小时前
[特殊字符] SpringBoot 自定义系统健康检测:数据库、Redis、表统计、更新时长、系统性能全链路监控
java·数据库·redis
5***E6857 小时前
MySQL:drop、delete与truncate区别
数据库·mysql
记得记得就1517 小时前
【MySQL数据库管理】
数据库·mysql·oracle