我有一张表
id - 一些数据
1 - ...
2 - ......
4 - ......
5 - ......
8 - ......
12 - ......
表格很长,有数千个ID。查看ID,它们之间有“空”数字。我想重新排序所有ID以使其没有空ID。
表格应该类似
1 - ...
2 - ......
3 - ......
4 - ......
等
查询怎么样?
答案 0 :(得分:2)
我不主张重新编号ID。 id列应该是表格的主键,而且差距不会产生影响。如果它用于外键引用,那么你将搞乱你的数据库。
但是,你可以这样做:
set @rn = 0;
update `table` t
set t.id = (@rn := @rn + 1)
order by t.id;