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 ;

方法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),否则可能会出现累计效果。

posted @ 2018-08-03 14:35  似水流年g  阅读(3731)  评论(0编辑  收藏  举报