在一对多关系的多边更新内部列表索引

问题描述

|| 我的表有一些数据损坏。 该表具有一对多关系的许多方面,例如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 任何提示表示赞赏。     

解决方法

这个怎么样:
SET @RowCount = -1;

UPDATE <table>
SET    <index> = (@RowCount := @RowCount + 1)
WHERE  ...
ORDER BY ...;
如果需要按特定顺序重新分配索引,则可以使用ORDER BY。我认为这行不通,但是对我有用。