题
我有以下表
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;
其他提示
写快速脚本来做到这一点。它应该少于10行代码在PHP。
我想你会发现的这篇文章有用。总之:你不能做到这一点恰好一个查询,但你可以在两个做(将数据装载到一个新表并执行INSERT语句)
不隶属于 StackOverflow