Mysql对查询结果添加序列号

Posted 空城里的往日时光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql对查询结果添加序列号相关的知识,希望对你有一定的参考价值。

 set @rownum=0;      
 select  @rownum:[email protected]+1 as rownum,* from table1
:=和=的区别?
  1. "=",只有在set和update时才和:=一样,赋值的作用,其它都是等于的作用。鉴于此,用变量实现行号时,必须用:=
  2. ":=",不只在set和update时时赋值的作用,在select也是赋值的作用。

如果明白了=和:=的区别,那么也就理解了下边的现象。 

@num:[email protected]+1,:=是赋值的作用,所以,先执行@num+1,然后再赋值给@num,所以能正确实现行号的作用。

@[email protected]+1,此时=是等于的作用,@num不等于@num+1,所以始终返回0,如果改为@[email protected],始终返回1了。mysql数据库中,用1表示真,0表示假。 

 

以上是关于Mysql对查询结果添加序列号的主要内容,如果未能解决你的问题,请参考以下文章

关于oracle和mysql数据库的查询问题

填补Mysql查询中时间序列空白的最佳方法

为啥此代码片段返回意外结果?

mysql结果集筛选排序

根据结果​​序列对 PHP MySQL 搜索结果进行排名

MySQL从查询结果中获取数据