设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL-在表中生成子集序列

发布时间:2021-01-18 22:05 所属栏目:115 来源:网络整理
导读:我有下表 Id Value1 31 121 672 72 995 305 335 45 875 125 1 我想对其进行更新以包含此表. Id UniqueIdBySubSet Value1 1 31 2 121 3 672 1 72 2 995 1 305 2 335 3 45 4 875 5 125 6 1 我在SO上找到了理想的线程,但这是针对mssql的.我使用的是MySQL 4.1.10

我有下表

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;

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读