MYSQL-在表中生成子集序列

前端之家收集整理的这篇文章主要介绍了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.

可以在这里找到另一个线程:Generating sequences for subsets of a table.

有谁知道我如何在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;

猜你在找的MySQL相关文章