当前位置: 首页 > news >正文

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

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

SELECT ROW_NUMBER() OVER (ORDER BY column_name) AS serial_number,column1, column2, ...
FROMyour_table;

请将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, ...
FROMyour_table, (SELECT @row_number:=0) AS t
ORDER BY column_name;

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

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

select version();

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

-- demo.schedule definitionCREATE 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;

插入数据:

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);

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

SELECT @row_number:=@row_number + 1 AS serial_number,s.*
FROMschedule s, (SELECT @row_number:=0) AS t
ORDER BY s.end_time ;

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

http://www.lryc.cn/news/161324.html

相关文章:

  • Linux 安装elasticsearch-7.5.1
  • ElementUI浅尝辄止26:Notification 通知
  • IDEA新建的Moudle失效显示为灰色
  • Protobuf的简单使用
  • OpenCV 12(图像直方图)
  • LeetCode 面试题 03.06. 动物收容所
  • 快速理解DDD领域驱动设计架构思想-基础篇 | 京东物流技术团队
  • C++学习笔记(堆栈、指针、命名空间、编译步骤)
  • Rust Yew应用开发的事件初探
  • 高并发下单例线程安全
  • 【EKF】EKF原理
  • 蓝桥杯官网填空题(古堡算式)
  • Python---集合set
  • LORA项目源码解读
  • Azure + React + ASP.NET Core 项目笔记一:项目环境搭建(一)
  • html 学习 之 文本标签
  • 联发科3纳米芯片预计2024年量产,此前称仍未获批给华为供货
  • 搭建vue3项目并git管理
  • 【Azure OpenAI】OpenAI Function Calling 101
  • 立晶半导体Cubic Lattice Inc 专攻音频ADC,音频DAC,音频CODEC,音频CLASS D等CL7016
  • 【Flutter】支持多平台 多端保存图片到本地相册 (兼容 Web端 移动端 android 保存到本地)
  • postgresql 安装教程
  • 手写数据库连接池
  • 在CentOS7上增加swap空间
  • @Autowired和@Resource
  • QTableView通过setColumnWidth设置了列宽无效的问题
  • 【用unity实现100个游戏之10】复刻经典俄罗斯方块游戏
  • Docker容器内数据备份到系统本地
  • 学信息系统项目管理师第4版系列06_项目管理概论
  • Java发送(QQ)邮箱、验证码发送