给mysql查询结果添加序号

SELECT (@i:=@i+1) as num,s.* FROM table s,(select @i:=0) as it WHERE s.file_id=64 ORDER BY s.seq

分析:

(select @i:=0) as it这句是为了创建一个变量i,并赋予初始值0 。mysql中的变量可以在使用时再声明,如这里的@i。这里的it这个别名也是必须的,虽然没用到但作为select的结果集当然需要一张虚表来存放结果。

@i:=@i+1,在上面已经为i赋予了初始值0,这里为i+1并重新赋给i,保证了每条结果行都比上一行的i大1。这和编程语言中的赋值语法大致相同,区别在mysql中使用:=表示赋值符号。

猜你喜欢

转载自blog.csdn.net/suifengerdon_44/article/details/53837058
今日推荐