用户变量不递增

问题描述:

为什么下面的查询不会递增seq?用户变量不递增

SELECT @sq :=if(@previous=uid,@sq,0)+1 as seq 
      ,@previous:=uid as user 
    FROM test 

结果:

seq user 
1  111 
1  111 
1  111 
1  222 
1  222 
1  222 

你忘了在前面做set @sq:=0,@previous:=0

或者你总是可以在其加入到查询:

SELECT @sq :=if(@previous=uid,@sq,0)+1 as seq 
     ,@previous:=uid as user 
FROM test, (select @sq:=0, @previous:=0) foo