2011-05-19 51 views
0

我有一個表有一些數據損壞。更新一對多關係的多方內部列表索引

該表具有一對多關係的許多方面,例如, order和orderItem。

訂單商品在列表中,並且代碼使用索引保持訂購。該索引有時會失序,因此索引條目不是0,1,2,3等,而是0,3,4,4或1,2,3,4,5等。

我有一個查詢,確定發生這種情況的訂單,但現在想要能夠

我正在使用MySQL 5.077。

此鏈接爲不同數據庫提供解決方案,但不確定如何採用MySQL。 http://haacked.com/archive/2004/02/28/sql-auto-increment.aspx

任何提示讚賞。

回答

1

這個怎麼樣:

SET @RowCount = -1; 

UPDATE <table> 
SET <index> = (@RowCount := @RowCount + 1) 
WHERE ... 
ORDER BY ...; 

如果需要重新分配指數以特定的順序,你可以使用ORDER BY。我不認爲這會起作用,但它適用於我。

+0

非常感謝!一段時間以來一直在掙扎着。 – 2011-05-20 08:43:55