MySQL:如何对查询的结果集添加自增序号
在MySQL中,当我们所要查询的结果集没有ID字段时,为方便前台展示等业务需求,需要添加一个自增的序号字段(ID)。语法如下:
SELECT (@i:=@i+1) 别名1,表字段信息 FROM 表名, (SELECT @i:=0) AS 别名2
示例如下:
Select (@i:=@i+1) as RowNum, A.* from Table1 A,(Select @i:=0) B
上述语句的效果等同于下述语句:
Set @i:=0;
Select (@i:=@i+1) as RowNum, A.* from Table1 A
上述的方法同样适用于分页查询:
Select (@i:=@i+1) as RowNum, A.* from Table1 A,(Select @i:=0) B order by A.id desc limit 0, 10;
Set @i:=0;
Select (@i:=@i+1) as RowNum, A.* from Table1 A order by A.id desc limit 0, 10;
补充: 如果是在MyBatis中使用上述查询时,变量i的的初始值0,可以使用传参的方式(¥{})进行设置。
参考: