2016-07-29 75 views
-1

我有一个表中有一个序列中有数字的列,但对于某些数字,它们可以与几个相同的数字组成一个组。然后,当用户删除一个组时,数字可能会出现空白。重新排序MySQL列序号

我想要做的是重新排列该列,使其从1开始,然后继续到最后一列。因此,例如,名为Item表列看起来是这样的:

1 
1 
2 
3 
5 
5 
7 
8 
8 

,我希望它转换成这样:

1 
1 
2 
3 
4 
4 
5 
6 
6 

有没有办法在MySQL做到这一点?

+6

递增数场似乎并不像一个好的设计。只需要一次删除,您可能需要更新整个表格。你究竟在努力实现什么? –

+0

请记住,数据库不需要/是/人类可读的,并且程序并不在乎它是否有4个或5个。 – amflare

+0

是的,我会在每次删除时更新表。这是一个名为范围的表,其中每个范围(输入的某些文本)可以与相同的项目或不同的项目相关。 – peteswanson12

回答

-1

我不鼓励这样做,但你可以重号每次更新

set @cnt = 0; 
update test t set [email protected]:[email protected]+1; 

更新后,你的价值观:这将由一个

+0

OP在他们的数据中有模糊,这会消除。数据丢失。 – ceejayoz

+0

的确如此,我刚刚注意到了这些蠢事。需要更复杂的方法,例如存储过程 –