VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • Mysql查询或导出结果添加序号字段实现方法

这篇文章主要介绍了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,可以使用传参的方式(¥{})进行设置。

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

原文链接:https://blog.csdn.net/ChunwaiLeung/article/details/136299375


相关教程