MySQL查询 - 设置自动编号

时间:2014-08-13 21:21:36

标签: mysql mysqli

我有一个包含许多条目的数据库,从ID 100000开始,到ID 200000结束。 现在我正在尝试将第一个和最低ID设置为1,并在每个下一个ID +1

时减少

因此,新的第一个ID为1,在该示例中,最后一个和最高的ID为99000。

是否有任何mysql查询,它会更新给定数字中的行,并为每个下一行更新+1?

1 个答案:

答案 0 :(得分:0)

您可以在更新中使用行号查询并使用相同的表连接,但使用连接结果集的行号结果更新ID

update t
join ( 
select id,@r:=@r+1 `row`
from t 
cross join (select @r:=0) t1
) t2 on (t.id = t2.id)
set t.id = t2.row
  

注意:如果结果成功,请在生产数据库上直接运行此查询,首先使用数据库副本对其进行测试   然后申请生产数据库

Fiddle Demo

相关问题