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
私はSOに完璧なスレッドを見つけたが、それはMSSQLのためでした。私は、MySQL 4.1.10を使用しています。
他のスレッドは、ここで見つけることができる:テーブルのサブセットのための配列の生成しますのます。
誰もが、私はMySQLでそれを行うことができます方法を知っているでしょうか?
は、ありがとう ジャン=フランソワ
解決
SET @r := 0;
SET @id := 0;
UPDATE mytable m
SET m.UniqueIdBySubSet = IF(@id = id, @r := @r + 1, @r := (@id := id) - id)
ORDER BY
id, value;
他のヒント
それを行うための迅速なスクリプトを書きます。これは、PHPでコード未満の10行を取る必要があります。
私はあなたが見つけることだと思う<のhref = "http://www.kavoir.com/2009/05/mysql-update-multiple-rows-with-one-single-query.html" のrel = "nofollowをnoreferrer ">この記事に便利。要するに:あなたは、1つのクエリでそれを行うことはできませんが、(新しい表にデータをロードし、INSERT文を実行)2でそれを行うことができます。
。所属していません StackOverflow