2

我正在开发一个应用程序具有一组有序字段的项目。此外,还可以删除其中一个字段,但是,如果您删除一行,它不会根据删除的内容重新排序,例如。1, 2, 4, 5, 6

有没有办法可以根据上面的字段重新排序列表给我1, 2, 3, 4, 5

4

2 回答 2

4

如果您知道您删除了“3”,请执行以下操作:

update t
    set id = id - 1
    where id > 3
于 2013-01-23T15:01:16.313 回答
0

这假设该id列与 auto_increment 一起使用

我认为没有可靠的“单一命令方式”来做到这一点。您可以使用 Gordon 的解决方案,但正如我所提到的,它不会正确地重新组织您的 id。

这是我的解决方案(假设您可以使用 PHP 或其他脚本语言):

  1. 检索所有表数据。
  2. 截断你的表。
  3. 用于ALTER TABLE 'your_table' AUTO_INCREMENT=0重置 auto_increment。
  4. 重新插入您之前检索到的数据。

这将是我这样做的方式。

于 2013-01-23T15:09:27.360 回答