【问题标题】:Increment value upto missing consicutive numbers将值递增到缺少的连续数字
【发布时间】:2013-04-16 10:21:09
【问题描述】:

我有一个表,其中一个字段的值是 1,2,3,5,6,.... 我的问题是,当我尝试插入“2”时,当前 2,3 以 1 递增,而 5,6 保持不变(因为 4 不存在),然后需要插入 2 个新值。 我尝试使用

更新查询
    Update table set v1=v1+1 where v1>=newvalue

在插入新值之前。但是 5,6 也增加了 1。我不知道该怎么做。有谁知道如何处理这个问题,请帮助我。我有大量数据,所以无法制作循环更新每个值

【问题讨论】:

    标签: mysql random increment


    【解决方案1】:
    SELECT t1.v1 + 1 AS gap
    FROM `table` AS t1
    LEFT OUTER JOIN `table` AS t2 ON t2.v1 = t1.v1 + 1
    WHERE t2.v1 IS NULL AND t1.v1 >= :newvalue
    ORDER BY t1.v1 ASC
    LIMIT 1
    

    这个查询给出了在插入:newvalue 时更新v1 的上限。

    【讨论】:

    • 你能建议一个更新已经存在的值的查询吗?我的意思是,如果我将值“5”更改为“3”,那么 3 到 4 会自动更改,6 到 5 ,7 到 6 等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2018-02-09
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多