服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL中实现分页操作的实战指南

MySQL中实现分页操作的实战指南

2022-08-26 15:12自牧君 Mysql

MySQL的分页似乎一直是个问题,下面这篇文章主要给大家介绍了关于MySQL中实现分页操作的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下

一、 背景

什么是分页,就是查询时候数据量太大,一次性返回所有查询结果既耗费网络资源、又降低了查询效率,用户也不可能一下子看完成千上万条数据。所以分页的技术就应运而生。分页可以只显示指定数量的数据。

分页在我们的生活中随处可见,如下图所示的电商网站:

MySQL中实现分页操作的实战指南

 

二、 实现规则

 

2.1 关键字 LIMIT

MySQL中,使用关键字 LIMIT 实现分页操作。格式为:

LIMIT 位置偏移量, 每页条目数;

当 位置偏移量 等于 0 时,该语句可简写为:

LIMIT 每页条目数;

【例子1】查询员工表 employees 中的员工的 employee_idlast_namesalarydepartment_id 信息。并按每页 20 条来显示。

# 写法一
SELECT employee_id, last_name, salary
FROM employees
LIMIT 0, 20;

# 写法二
SELECT employee_id, last_name, salary
FROM employees
LIMIT 20;

其中,LIMIT 后第一个参数是初始偏移量,即从第几条数据开始显示;第二个参数是每页要显示多少条数据。

查询结果:

MySQL中实现分页操作的实战指南

显示了员工编号 100~119 的员工。

【例子2】继续上面的例子1,上面的代码只是显示了第一页的数据,如果现在用户想要显示第2页的数据,应该怎么操作呢?可以使用 LIMIT 后第一个参数是初始偏移量来让数据库从第21条数据 (因为第1条数据的编号为 0 ,所以第20条数据的编号就是20) 开始显示。如下代码所示:

SELECT employee_id, last_name, salary
FROM employees
LIMIT 20, 20;

查询结果:

MySQL中实现分页操作的实战指南

显示了员工编号 120~139 的员工。

【总结】总结一个分页的公式,设每页显示的数据个数为 pageSize,当前是第 pageNo 页,那么就有如下 LIMIT 查询公式:

LIMIT (pageNo - 1) * pageSize, pageSize;

 

2.2 查询数据库表的第 x x x 条记录

【例子1】查询员工表 employees 中的第 32、33条员工的数据。

SELECT employee_id, last_name, salary
FROM employees
LIMIT 31, 2;

查询结果:

MySQL中实现分页操作的实战指南

 

2.3 WHERE…ORDER BY…LIMIT… 的声明顺序 (非执行顺序)

正确的声明顺序如下代码所示:

SELECT employee_id, last_name, salary
FROM employees
WHERE salary >= 5000
ORDER BY salary DESC
LIMIT 0, 10;

查询结果:

MySQL中实现分页操作的实战指南

 

三、 拓展

MySQL8.0中对于分页新增了一个新特性,对 LIMIT 后增加了偏移量 OFFSET :

LIMIT 每页条目数 OFFSET 初始偏移量;

对比一下原有的格式,无非就是把 初始偏移量 和 每页条目数 位置调转一下,然后把逗号去掉即可。

LIMIT 可以使用在 MySQL、PostgreSQL、MariaDB 和 SQLite 中。LIMIT 不可以使用在 Oracle、DB2、SQL Server 中!

 

总结

到此这篇关于MySQL中实现分页操作的文章就介绍到这了,更多相关MySQL分页操作内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/Sihang_Xie/article/details/125491969

延伸 · 阅读

精彩推荐
  • MysqlMYSQL自定义函数判断是否正整数的实例代码

    MYSQL自定义函数判断是否正整数的实例代码

    这篇文章主要介绍了MYSQL自定义函数判断是否正整数 的实例代码,主要是使用正则表达式来判断,具体实例代码大家跟随小编一起通过本文学习吧...

    Insus.NET5372019-06-16
  • MysqlMySQL 数据类型和建库策略

    MySQL 数据类型和建库策略

    无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构、充分利用空间是十分必要的。这就要求我们对数据库系统的常用数据类型...

    mysql教程网1982019-10-25
  • MysqlMySQL定时备份数据库操作示例

    MySQL定时备份数据库操作示例

    这篇文章主要介绍了MySQL定时备份数据库操作,结合实例形式分析了MySQL定时备份数据库相关命令、原理、实现方法及操作注意事项,需要的朋友可以参考下...

    OldKind超8332021-01-12
  • Mysqlmysql server is running with the --skip-grant-tables option

    mysql server is running with the --skip-grant-tables option

    今天在mysql中新建数据库提示The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement,原来是数据中配置的--skip-grant-tables,这样安全就...

    MYSQL教程网3172020-08-04
  • Mysqlmysql字符串拼接并设置null值的实例方法

    mysql字符串拼接并设置null值的实例方法

    在本文中小编给大家整理的是关于mysql 字符串拼接+设置null值的实例内容以及具体方法,需要的朋友们可以学习下。...

    wx5d21d5e6e5ab15272020-12-03
  • MysqlMysql数据库的一些命令

    Mysql数据库的一些命令

    如果你习惯用 windows 的数据库,也就是在 图形界面上操作数据库的话,那么当你在命令上 操作 mysql 将会感到陌生,其实只要你掌握了一些基本命令,还有...

    MYSQL教程网2992020-01-15
  • MysqlSQL优化老出错,那是你没弄明白MySQL解释计划用法

    SQL优化老出错,那是你没弄明白MySQL解释计划用法

    本篇文章讲的是SQL优化老出错,那是你没弄明白MySQL解释计划用法,有兴趣的小伙伴速度来看看吧,希望本篇文章能够帮助到你...

    香菜聊游戏6422022-01-10
  • Mysqlmysql备份策略的实现(全量备份+增量备份)

    mysql备份策略的实现(全量备份+增量备份)

    最近项目需要对数据库数据进行备份,通过查阅各种资料,设计了一套数据库备份策略,本文就来详细的介绍一下,感兴趣的可以了解一下...

    isyslab5002021-08-30