MySQL表重新排序

时间:2015-07-05 15:18:26

标签: mysql sql

我有一张表

id - 一些数据
1 - ...
2 - ......
4 - ......
5 - ......
8 - ......
12 - ......

表格很长,有数千个ID。查看ID,它们之间有“空”数字。我想重新排序所有ID以使其没有空ID。

表格应该类似
1 - ...
2 - ......
3 - ......
4 - ......

查询怎么样?

1 个答案:

答案 0 :(得分:2)

我不主张重新编号ID。 id列应该是表格的主键,而且差距不会产生影响。如果它用于外键引用,那么你将搞乱你的数据库。

但是,你可以这样做:

set @rn = 0;

update `table` t
    set t.id = (@rn := @rn + 1)
    order by t.id;