我在一个表中有1000条记录,其中包含从1到1000开始的位置字段。现在,我想实现1000条记录的重新排序功能。假设,如果我把第1000记录移到第1位,那么第1记录应该移动到第2位,第2记录移动到第3位,第999记录移动到第1000位。
注意:我每页显示20条记录。
我已经实现了重新排序功能使用jqGrid拖放插件。使用该技术,一次更新20个记录位置非常简单。在MySQL方面,我将触发20个更新查询来更新20个记录位置。
现在,我希望在“位置”列中有一个textbox字段,该字段保存当前记录位置。这样,用户就可以通过在文本字段中输入位置号将任何记录移动到任何位置,而不管拖放。假设,我在第50页,我想将第1000条记录移到第1位,我将在第1000位置文本字段中输入位置号为1。一旦我输入了位置号,重新排序逻辑就应该像我在第一段中所说的那样发生。
现在,有谁能告诉我如何一次更新1000条记录?MySQL的负载是什么?实现此功能的最佳方法是什么?
注意:我不想像在拖放功能中那样触发1000个更新查询(即为了避免MySQL死锁条件)。
谢谢大家提前帮忙。
发布于 2010-07-30 04:33:24
数以百计的更新有点荒谬。试着做这样的事情:
UPDATE Records SET
SequenceNumber = SequenceNumber + 1
WHERE SequenceNumber >= @Lowbound AND SequenceNumber <= @UpperBound;
UPDATE Records SET
SequenceNumber = @Lowbound
WHERE ID = @SelectedId;https://stackoverflow.com/questions/3368701
复制相似问题