でサブセットのシーケンスを生成する私は、このテーブルを持って、それを更新したいと思います次の表MYSQL - テーブル
Id Value
1 3
1 12
1 67
2 7
2 99
5 30
5 33
5 4
5 87
5 12
5 1
を持っています。
Id UniqueIdBySubSet Value
1 1 3
1 2 12
1 3 67
2 1 7
2 2 99
5 1 30
5 2 33
5 3 4
5 4 87
5 5 12
5 6 1
私は完璧なスレッドを見つけましたが、mssql用です。私はMySQL 4.1.10を使用します。
もう1つのスレッドはGenerating sequences for subsets of a tableです。
誰かが私がmysqlでそれを行う方法を知っていますか?
こんにちは、私はあなたの答えを試してみて、それは動作しません。私が上の例で得た価値は次のとおりです。 1、1、3 1、2、12 1、3、67 2、1、7 2、2、99 5、3、1 5、4、4 5、5、12 5 、6、30 5,7,33 5,8,87 私は約20分間それを使っていましたが、うまく動作しないようです。アイデアは素晴らしいようだが、私はそれがうまくいくと思う。 ご意見がありましたら、お気軽に情報を追加してください。 –
私はそれを動作させることができました。しかし、最初のインデックスはもはや1ではなく、0である。 SET @r:= -1; SET @id:= -1; UPDATE mytable m SET m.UniqueIdBySubSet =ケース WHEN @ id = 0 THEN @r:=(@id:= m.Id) - m.Id WHEN m.Id = @id THEN @r:= @r + 1 ELSE @r:=(@ id:= m.Id) - m.Id END ORDER BY m.Id、m.Value; 入力いただきありがとうございます。本当に感謝しています。 –