• 【Mysql】给查询记录增加序列号方法


    在MySQL 8.0版本中,你可以使用ROW_NUMBER()函数来添加序号。以下是一个示例查询,演示如何添加序号:

    SELECT 
        ROW_NUMBER() OVER (ORDER BY column_name) AS serial_number,
        column1, column2, ...
    FROM
        your_table;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    请将column_name替换为你想要按照哪一列排序的列名。还可以添加其他需要的列,以在结果中显示它们。

    这个查询将返回一个名为serial_number的新列,其中包含每行的序号。序号是根据ORDER BY子句中指定的列进行排序的。

    需要注意的是,ROW_NUMBER()函数是在MySQL 8.0版本中引入的。在MySQL 5.7版本中,该函数不可用。如果你使用的是MySQL 5.7版本,并且需要添加序号,你可以考虑其他方法,例如使用变量或自增列。以下是一个使用变量的示例查询:

    SELECT 
        @row_number:=@row_number + 1 AS serial_number,
        column1, column2, ...
    FROM
        your_table, (SELECT @row_number:=0) AS t
    ORDER BY column_name;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这个示例中,我们使用一个变量@row_number来追踪行号。通过将变量递增并与其他查询一起使用,你可以为每行添加一个序号。请记得将column_name替换为你想要按照哪一列排序的列名。

    由于我安装的是MySQL 5.7版本的,下面用MySQL 5.7的演示一下:
    查看版本号:

    select version();
    
    • 1

    输出:
    在这里插入图片描述
    数据准备:

    -- demo.schedule definition
    
    CREATE TABLE `schedule` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
      `start_time` datetime NOT NULL,
      `end_time` datetime NOT NULL,
      `employee_id` int(10) unsigned DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    插入数据:

    INSERT INTO demo.schedule
    (start_time, end_time, employee_id)
    VALUES('2023-09-08 07:50:00', '2023-09-08 12:00:00', 1);
    INSERT INTO demo.schedule
    (start_time, end_time, employee_id)
    VALUES('2023-09-08 12:40:00', '2023-09-08 17:20:00', 1);
    INSERT INTO demo.schedule
    (start_time, end_time, employee_id)
    VALUES('2023-09-08 18:10:00', '2023-09-08 20:30:00', 1);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    查询数据,给记录添加序列号:

    SELECT 
        @row_number:=@row_number + 1 AS serial_number,
        s.*
    FROM
        schedule s, (SELECT @row_number:=0) AS t
    ORDER BY s.end_time ;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

  • 相关阅读:
    函数组件也可以通过connect获取react-redux的数据(reducer)
    矩阵系统有什么优点?
    WindowManagerService详述
    Spring原理学习(八)AOP底层实现
    模板、外观、观察者、建造者
    交互与前端3 前端需求简单梳理
    P-MVSNet ICCV-2019 学习笔记总结 译文 深度学习三维重建
    第九章·适配器模式
    2024龙年特别篇 -- 魔法指针 之 指针变量
    操作系统实验一:计算机资源信 息分析(Windows 2学时)
  • 原文地址:https://blog.csdn.net/qq_22744093/article/details/132753775