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
相关推荐
shuair10 小时前
mysql8支持远程访问 -mysql5.7支持远程访问
linux·mysql
瑞士卷@10 小时前
MyBatis入门到精通(Mybatis学习笔记)
java·数据库·后端·mybatis
白云偷星子11 小时前
MySQL笔记13
数据库·笔记·mysql
施嘉伟11 小时前
静默安装金仓数据库,到底有多简单?
数据库
Tapdata11 小时前
实时物化视图的新路径:从传统 Join 到跨源实时查询
数据库
optimistic_chen11 小时前
【Java EE进阶 --- SpringBoot】Mybatis - plus 操作数据库
数据库·spring boot·笔记·java-ee·mybatis·mybatis-plus
FJW02081411 小时前
关系型数据库大王Mysql——DDL语句操作示例
数据库·mysql
言之。11 小时前
Chroma 开源的 AI 应用搜索与检索数据库(即向量数据库)
数据库·人工智能·开源
来旺12 小时前
互联网大厂Java面试全解析及三轮问答专项
java·数据库·spring boot·安全·缓存·微服务·面试
wudl556612 小时前
flink sql 所有函数详细用例
大数据·sql·flink