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
相关推荐
Rain的Java大神之路2 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
十二同学啊2 小时前
向量数据库:从核心原理到 RAG 与 Java 实战
数据库
蓝速科技3 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
大海星辰7984 小时前
一次对账SQL“灵异事件”排查:NOT IN返回空集的坑
mysql
Linux-lucky4 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
一 乐6 小时前
二手交易平台|基于springboot + vue二手交易平台(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序
SelectDB6 小时前
同等资源下 Apache Doris 4.2 vs StarRocks 4.1.1:1TB SSB 与 TPC-H 性能实测
大数据·数据库·数据分析
这个DBA有点耶6 小时前
数据库集群与分布式架构:三条技术路线对比、金仓KES RAC实测数据与决策框架
数据库·程序员·架构
MayBaymax6 小时前
MongoDB 索引与事务
java·数据库·mongodb
SelectDB6 小时前
Doris vs ClickHouse:企业 OLAP 走向下一阶段,两种技术路线如何选择
大数据·数据库·数据分析