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
相关推荐
向阳而生,一路生花16 小时前
redis离线安装
java·数据库·redis
·云扬·16 小时前
使用pt-archiver实现MySQL数据归档与清理的完整实践
数据库·mysql
黄焖鸡能干四碗16 小时前
信息安全管理制度(Word)
大数据·数据库·人工智能·智慧城市·规格说明书
zhangyifang_00916 小时前
PostgreSQL一些概念特性
数据库·postgresql
weixin_466816 小时前
安装Zabbix7
数据库·mysql·zabbix
数据库生产实战17 小时前
Oracle 19C实测:重命名分区表后又重命名分区索引,分区索引会失效吗?DBA必看避坑指南!
数据库·oracle·dba
king_harry17 小时前
window server2008下Oracle 配置dblink查询 MySQL 数据
数据库·mysql·oracle·odbc·dblink
chde2Wang17 小时前
hbase启动报错-keeperErrorCode
大数据·数据库·hbase
清平乐的技术专栏17 小时前
HBase Shell常用命令
大数据·数据库·hbase
Zhen (Evan) Wang17 小时前
SQL Server Service Broker启用详解以及常见问题
数据库·sqlserver