Mysql查询或导出结果添加序号字段实现方法

 更新时间:2024年04月10日 14:38:08   作者:不会理财的程序员不是好摄影师  
这篇文章主要介绍了Mysql查询或导出结果添加序号字段实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Mysql查询或导出结果添加序号字段

在MySQL中查询数据或者导出Excel时,通常都需要给结果集中的每一行来添加一个序号,方便给查询出或者导出的数据进行排序并且方便查看和处理数据

常见的方法是通过定义用户变量,在MySQL中直接给查询结果集添加序号

通过定义用户变量生成序号

在SQL语句中通过定义一个用户变量,然后每查询一行数据就将用户变量自增1并赋值给序号列,这种方法可以实现对查询结果集添加序号。

示例SQL语句:

SELECT  (@orderNum := @orderNum +1) AS orderNum  id, name, number, tel FROM tb_user, (SELECT @orderNum := 0) AS orderNum;

序号语句相关说明

  • (@orderNum  := @orderNum +1) 代表的意思是:变量 orderNum加 1 赋值给变量 orderNum,在定义好一个变量后每次查询都会给这个变量进行自增,每次执行查询语句获取结果后就不需要自增了。
  • (SELECT @orderNum := 0)  AS orderNum ,定义用户变量 orderNum,设置初始值为 0,然后将它作为派生表来使用,AS 给表定义了别名。

Mysql对查询的结果集添加自增序号,两种写法

在MySQL中,当我们所要查询的结果集没有ID字段时,为方便前台展示等业务需求,需要添加一个自增的序号字段(ID)。

语法如下:

SELECT (@i:=@i+1) 别名1,表字段信息  FROM 表名, (SELECT @i:=0) AS 别名2

代码示例,同时结合分页使用

写法1

SET @i:=0;
SELECT (@i:=@i+1) AS RowNum, A.* FROM t_prize_log A ORDER BY A.ese_id DESC LIMIT 0, 10; 

写法2

SELECT (@i:=@i+1) AS RowNum, A.* FROM t_prize_log A,(SELECT @i:=0) B ORDER BY A.ese_id DESC LIMIT 0, 10;

区别:

  • 写法1多次执行,id会自动增加,
  • 写法2多次执行,id不会增加

补充:

如果是在MyBatis中使用上述查询时,变量i的的初始值0,可以使用传参的方式(¥{})进行设置。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL 配置优化(多个参数)

    MySQL 配置优化(多个参数)

    安装MySQL后,配置文件my.cnf在 /MySQL安装目录/share/mysql目录中,该目录中还包含多个配置文件可供参考,有my-large.cnf ,my-huge.cnf, my-medium.cnf,my-small.cnf,分别对应大中小型数据库应用的配置。win环境下即存在于MySQL安装目录中的.ini文件
    2016-05-05
  • 高级MySQL数据库面试问题 附答案

    高级MySQL数据库面试问题 附答案

    绝对精彩的文章,11个高级MySQL数据库面试问题,每个问题都给出了具体答案,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • MYSQL更新优化实录

    MYSQL更新优化实录

    本文给大家分享的是个人在对mysql数据进行刷新的时候遇到的一个效率非常低下的问题的解决全过程,主要是针对sql语句来进行优化,有查找问题的方法,有解决方法,非常的详细,小伙伴可以参考下。
    2015-08-08
  • 详解让MySQL和Redis数据保持一致的四种策略

    详解让MySQL和Redis数据保持一致的四种策略

    在分布式系统中,保证Redis和MySQL之间的数据一致性是一个复杂且重要的问题,下面这篇文章主要给大家介绍了关于让MySQL和Redis数据保持一致的四种策略,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • 全面解析MySQL常见问题的排查与解决方法

    全面解析MySQL常见问题的排查与解决方法

    MySQL 是一款常用的关系型数据库管理系统,广泛应用于各类应用开发和数据管理场景,然而,在实际使用中,MySQL 有时会遇到启动失败、服务中断或性能问题等情况,所以本文给大家介绍了MySQL常见问题的排查与解决方法,需要的朋友可以参考下
    2024-11-11
  • mysql之触发器使用

    mysql之触发器使用

    这篇文章主要介绍了mysql之触发器使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2017-09-09
  • MySQL 请选择合适的列

    MySQL 请选择合适的列

    如果你的表结构设计不良或你的索引设计不佳,那么请你优化你的表结构设计和给予合适的索引,这样你的查询性能就能提高几个数量级。——数据越大,索引的价值越能体现出来
    2012-05-05
  • MySQL深分页问题解决思路

    MySQL深分页问题解决思路

    这篇文章主要介绍了优雅地解决mysql深分页问题,本文将会讨论当mysql表大数据量的情况,如何优化深分页问题,并附上最近的优化慢sql问题的案例伪代码,需要的朋友可以参考下
    2022-12-12
  • mysql登录警告问题的解决方法

    mysql登录警告问题的解决方法

    这篇文章主要为大家详细介绍了mysql登录警告问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • MySQL数据库show processlist指令使用解析

    MySQL数据库show processlist指令使用解析

    这篇文章主要介绍了MySQL数据库show processlist指令使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论