2016-07-29 76 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

的確如此,我剛剛注意到了這些蠢事。需要更復雜的方法,例如存儲過程 –