在一对多关系的多个方面更新内部列表索引

时间:2011-05-19 21:34:26

标签: mysql sql

我有一个表有一些数据损坏。

该表具有一对多关系的多方面,例如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 个答案:

答案 0 :(得分:1)

怎么样:

SET @RowCount = -1;

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

如果需要按特定顺序重新分配索引,可以使用ORDER BY。我认为这不会起作用,但它对我有用。