代码之家  ›  专栏  ›  技术社区  ›  Jean-Francois

MYSQL-在表中生成子集序列

  •  3
  • Jean-Francois  · 技术社区  · 17 年前

    我有下表

    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中做到这一点吗?

    让-弗朗索瓦

    3 回复  |  直到 9 年前
        1
  •  3
  •   Quassnoi    17 年前
    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;
    
        2
  •  0
  •   Zak    17 年前

    编写一个快速脚本来完成它。它应该用php编写不到10行代码。

        3
  •  0
  •   dpq    17 年前
    推荐文章