将值增加到缺少连续数字

时间:2013-04-16 10:21:09

标签: mysql random increment

我有一个字段的表有值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.我不知道该怎么做。有谁知道如何处理这个,请帮帮我。我有大量的数据,所以不可能做循环更新每个值

1 个答案:

答案 0 :(得分: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

此查询提供了在插入v1时更新:newvalue的上限。