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
相关推荐
思茂信息33 分钟前
CST微波混频电路 --- 频线任务,谐波平衡(Harmonic Balance)
数据库·3d·负载均衡·软件工程·cst·电磁仿真
孟意昶44 分钟前
Spark专题-第二部分:Spark SQL 入门(8)-算子介绍-sort
大数据·数据仓库·sql·spark
lang201509281 小时前
MySQL InnoDB压缩:OLTP性能优化实战
数据库·mysql
roman_日积跬步-终至千里1 小时前
【软件架构设计(40)】数据库规范化与性能优化
数据库·oracle·性能优化
一个天蝎座 白勺 程序猿1 小时前
Oracle与Kingbase深度兼容体验:从连接配置到性能优化全解析
数据库·oracle·性能优化·kingbase·金仓数据库
lang201509281 小时前
InnoDB调优指南:性能优化全解析
数据库·mysql
他们叫我技术总监2 小时前
帆软Report11多语言开发避坑:法语特殊引号导致SQL报错的解决方案
java·数据库·sql
UNbuff_02 小时前
MySQL所有关键字详细含义说明
数据库·mysql
QQ12958455042 小时前
sqlite是什么
数据库·sqlite
豆豆·丁2 小时前
kettle 执行java脚本生成SQL
java·开发语言·数据库