• 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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    在这里插入图片描述

    3 举例说明

    3.1 格式1: [NOT] LIMIT N

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

    查询表中前三条数据:

    SELECT
    FROM
    `user_wages_information` 
    LIMIT 3
    
    • 1
    • 2
    • 3
    • 4

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

    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
    
    • 1
    • 2
    • 3
    • 4

    结果:

    在这里插入图片描述

    结果都是正确的。

    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

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

  • 相关阅读:
    Redis——主从同步
    关于字符拼接
    基于Oracle数据库高校学生宿舍管理系统
    牛客-模拟、枚举与贪心 2022.10.20
    界面控件DevExpress BI Dashboard v23.1——支持全新的图标趋势指标
    QFile文件读写操作QFileInFo文件信息读取
    二进制文件可视化(二)
    释放数据生产力,数据治理要“即时”
    ​力扣解法汇总1624-两个相同字符之间的最长子字符串
    js 生成随机字符串 -- chatGPT
  • 原文地址:https://blog.csdn.net/weixin_45909221/article/details/127796870