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
なぜ次のクエリが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