我想在MySQL表的计数器列中找到第一个“间隙”。例如,如果有值1,2,4和5,我想查找3,将4更新为3,将5更新为4,依此类推。问题在于间隙可以在表的任何点(也可以是第一个值),并且可以跨越多个值。
我知道这不是一个好的模式,标准的解决方案是忽略这些差距,但是在这种情况下,实际上是不可能的。
可以在SQL(使用MySQL)或PHP中完成。
答案 0 :(得分:1)
尽管这不是一种很好的处理方式,但是如果您唯一要担心的是希望对所有现有行进行编号而不留空格,则可以像这样进行更新并重新编号。
SET @ROW:= 0;
UPDATE TABLE SET COUNTER_ROW = @Row := @Row+1