MYSQL中LIMIT语句(限制语句)

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 记录下MYSQL中LIMIT语句的基本使用

0 写在前面

记得之前写过一个分页查询的例子,用的方法就是limit限定条目数。
如果对于数据太多,把所有数据放在一个屏幕上显得很乱,如果限定一下一个屏幕显示几条数据,分成n页就显得很干净利索。

1 语法格式

格式1:[NOT] LIMIT N

返回 N 条记录

格式2:[NOT] LIMIT N,M

从第 N 条记录开始, 返回 M 条记录

2 SQL准备

SQL:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user_wages_information
-- ----------------------------
DROP TABLE IF EXISTS `user_wages_information`;
CREATE TABLE `user_wages_information`  (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `user_wager_information_uuid` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户工资表主键',
  `user_information_uuid` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户信息主键',
  `year` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '年份',
  `month` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '月份',
  `base_salary` double UNSIGNED NULL DEFAULT NULL COMMENT '基本工资',
  `bonus` double NULL DEFAULT NULL COMMENT '奖金',
  `punish` double NULL DEFAULT NULL COMMENT '扣除',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户工资信息表' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of user_wages_information
-- ----------------------------
INSERT INTO `user_wages_information` VALUES (1, '92b639cf-c2ca-4fff-9fd8-4c8074e8109c', 'f76b7382-8fc5-4197-8d46-f9d6e3729089', '2022', '10', 3000, 1500, 100, '4400');
INSERT INTO `user_wages_information` VALUES (2, '4dcf10bd-2706-49c4-a505-41da5667cd08', 'f76b7382-8fc5-4197-8d46-f9d6e3729089', '2022', '9', 3000, 1500, 0, '4500');
INSERT INTO `user_wages_information` VALUES (3, '2a560bbf-c98e-4bd4-b8ed-4068d1c261ab', '197410ca-9dde-4850-9ff7-5153786db821', '2022', '10', 9000, 4000, 0, '13000');
INSERT INTO `user_wages_information` VALUES (4, '7eb42aa0-dbc3-4d88-a636-d3044ec6efdf', 'f76b7382-8fc5-4197-8d46-f9d6e3729089', '2022', '8', 3000, 1000, 500, '3500');
INSERT INTO `user_wages_information` VALUES (5, '37cb6240-a958-44db-8276-2f2af2156a32', '197410ca-9dde-4850-9ff7-5153786db821', '2022', '9', 8000, 3000, 0, '11000');
INSERT INTO `user_wages_information` VALUES (6, 'f2009698-8152-4045-b7a8-927994993af9', '01198488-a0b6-46ba-9311-9e64ba1d41ef', '2022', '10', 5000, 0, 0, '5000');
INSERT INTO `user_wages_information` VALUES (7, 'e3e45ce4-1db1-40ff-8efe-f7a0685972e2', '01198488-a0b6-46ba-9311-9e64ba1d41ef', '2022', '9', 5000, 0, 0, '5000');

SET FOREIGN_KEY_CHECKS = 1;

在这里插入图片描述

3 举例说明

3.1 格式1: [NOT] LIMIT N

此功能是查询表中前N条数据,TIPS(N必须是正整数)

查询表中前三条数据:

SELECT
FROM
`user_wages_information` 
LIMIT 3

结果:
在这里插入图片描述

3.2格式1: [NOT] LIMIT N,M

此功能是查询表中第N条开始,M条数据TIPS(N,M必须是正整数)N从0开始

查询第4,5,6条数据,那就是从3开始,3条数据。

SELECT
FROM
`user_wages_information` 
LIMIT 3,3

结果:

在这里插入图片描述

结果都是正确的。

4 小技巧--分页公式

设定:

页码:curPage

一页多少条数:pageSize

则他的公式为(伪代码):[NOT] LIMIT (curPage-1)*pageSize,pageSize

如果我一页是三条:

第一页:LIMIT (1-1)3,3 -----> LIMIT 0,3

第二页:LIMIT (2-1)3,3 -----> LIMIT 3,3

e`

如果我一页是三条:

第一页:LIMIT (1-1)3,3 -----> LIMIT 0,3

第二页:LIMIT (2-1)3,3 -----> LIMIT 3,3

这个已经验证过了,可以直接拿来用。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
关系型数据库 MySQL 索引
【mysql】 limit 关键字
【mysql】 limit 关键字
138 0
|
11月前
|
关系型数据库 MySQL
MySql limit 数据分页
MySql limit 数据分页
47 0
|
3月前
|
SQL 关系型数据库 MySQL
MYSQL分页limit速度太慢优化方法
MYSQL分页limit速度太慢优化方法
54 0
|
6天前
|
SQL 关系型数据库 MySQL
SQL语句编写的练习(MySQL)
这篇文章提供了MySQL数据库中关于学生表、课程表、成绩表和教师表的建表语句、数据插入示例以及一系列SQL查询练习,包括查询、排序、聚合和连接查询等操作。
|
30天前
|
SQL 关系型数据库 MySQL
MySQL设计规约问题之为什么在使用LIMIT进行分页时要注意效率,并且LIMIT的值越大效率越低
MySQL设计规约问题之为什么在使用LIMIT进行分页时要注意效率,并且LIMIT的值越大效率越低
|
2月前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库AnalyticDB产品使用合集之如何修改云ADB MySQL版的默认LIMIT
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
74 21
|
3月前
|
SQL 存储 缓存
SQL语句在MySQL中是如何执行的
SQL语句在MySQL中是如何执行的
65 0
|
3月前
|
关系型数据库 MySQL 数据库
【MySQL进阶之路 | 基础篇】排序(ORDER BY)与分页(LIMIT)
【MySQL进阶之路 | 基础篇】排序(ORDER BY)与分页(LIMIT)
|
2月前
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL优化(3/3)-limit 优化、count 优化、update 优化、SQL优化 小结
MySQL数据库——SQL优化(3/3)-limit 优化、count 优化、update 优化、SQL优化 小结
278 0
|
10月前
|
算法 关系型数据库 MySQL
【MySQL系列】-ORDER BY……HAVING详解及limit
文章目录 创建学校联考成绩表 一、obder by…… having…… 1.格式: 2.作用: 3.使用: 4.使用细节: 二、limit 1. limit的格式: 2. limit的作用: 3.使用: