2012-02-23 76 views
0

爲什麼下面的查詢不會遞增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 

回答

2

你忘了在前面做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