我有一个包含许多条目的数据库,从ID 100000开始,到ID 200000结束。现在,我尝试将第一个ID和最低ID设置为1,然后递减下一个ID +1
因此,新的第一个ID将是1,在该示例中,最后一个也是最高的ID将是99000。
有没有任何mysql查询,它从给定的数字更新行,并为下一行更新+1?
发布于 2014-08-14 05:40:01
可以在update和join中使用行号查询,但update id使用来自连接结果集的行号result
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
https://stackoverflow.com/questions/25296359
复制相似问题