Mysql排序增加序号列

248 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

今天在Mysql数据库查询数据并进行排序时,感觉没有序号查看排序结果不够直观。示例如下:

--查询部分城市2019年GDP排名
select t.city,t.gdp,t.`year` from city_gdp t where t.`year`='2019' group by t.city,t.gdp,t.`year` order by t.gdp desc;

查询结果:

image.png

如需增加序号一列,可按如下方式改写sql:

--查询部分城市2019年GDP排名
select @rank:=@rank + 1 AS num,a.* from
(select t.city,t.gdp,t.`year` from city_gdp t where t.`year`='2019' group by t.city,t.gdp,t.`year` order by t.gdp desc) a,
(SELECT @rank:= 0) b;

查询结果如下:

image.png

其中@rank 是 用户自定义的变量,:=是赋值的作用。