MySQL中如何为查询的数据添加⾃增序号、顺序呢?
背景介绍
很多时候我们在使⽤mysql查询数据的时候都会遇到⼀个问题,就是查询出来了⼀堆数据,但是查询的数据的表并没有序号,然⽽部分数据库显⽰⼯具是有外带序号显⽰,但是这种序号不是由sql产⽣的,⽽是⼯具的list容器⽣成的,那么这个时候应该怎么解决呢?
解决⽅案
写法⼀、
set @rownum = 0;
SELECT @rownum := @rownum +1 AS rownum ,s.account  FROM s_user s ORDER BY  s.reg_time DESC ;
mysql中select⽅法1的写法就是声明了⼀个变量在外部,然后每⾏数据都为它⾃增。
写法⼆
SELECT
account,
(@i:=@i+1) AS rows
FROM
s_user,
(SELECT @i := 0) AS it
ORDER BY
account DESC
写法⼆的和写法⼀实现的效果是⼀样的,只是sql有⼀点区别,其次在调⽤过程需要注意⼀个事项,就是在from 后⾯需要为变量归零重置((SELECT @i := 0) AS it),否则可能会出现累计效果。