【发布时间】:2011-05-06 20:16:10
【问题描述】:
例子:
索引 |一些数据
1 | some_data1
3 | some_data3
4 | some_data4
5 | some_data5
我想做一个 INSERT 来添加 ---> 2 |一些数据2。 是否有 SQL 命令或某种方式来执行此操作?
[编辑]
好的。也许如果我解释我想要完成的每一件事,你就会明白为什么我要尝试做我想做的事情。我在 php 中创建了一个 Web 管理页面,它只显示来自数据库表的数据。现在这些显示的行是“可拖动的”。例如,您可以将第 2 行拖到第 4 行。现在在“mouseup”事件中,我想将新订单保存在数据库中。
1|数据1 -------------> 1|数据1
2| data2 --------拖动后-----> 3|数据3
3|数据3 -------------> 4|数据4
4|数据4 -------------> 2|数据2
看到我的问题了吗?我不能仅仅为被拖动的一个值更新 INDEX 列中的值。我将不得不更新所有被拖过来的值。 3 必须变成 2,4 必须变成 3,2 必须变成新的 4。那是太多的 sql 更新(特别是如果表更大)。所以我想删除第 2 行并将其插入正确的位置。
【问题讨论】:
-
如果
INDEX是你的自增列,我相信你可以在INSERT语句中指定行号。但是,除非您对该列进行排序,否则它不会以正确的顺序出现(例如在 phpMyAdmin 中)。 -
你不能依赖行的自然顺序,真的。我怀疑您是否可以轻松更改它,除了在插入后删除并重新插入每一行。