Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql PHP中记录/行的交换_Php_Mysql_Database - Fatal编程技术网

Mysql PHP中记录/行的交换

Mysql PHP中记录/行的交换,php,mysql,database,Php,Mysql,Database,我在mysql中有一个参与者表。例如,表数据如下所示 例如,有一个错误。点火开关必须位于第4位置。如果我把Donald换成Ignit,它会变成这样,这是错误的: 所以,我要一个接一个地交换 伊格尼特->哈利,伊格尼特->杰拉德,伊格尼特->芬奇,伊格尼特->艾玛,伊格尼特->唐纳德所以它会变成: 1.安迪 2.巴里 3.查理 4.点火开关 5.唐纳德 6.艾玛 7.时髦的 8.杰拉德 9哈利 10约翰 问题是,如果有数千名参与者,我如何交换?一个接一个地交换很麻烦,而且需要很长时间 没有回

我在mysql中有一个参与者表。例如,表数据如下所示

例如,有一个错误。点火开关必须位于第4位置。如果我把Donald换成Ignit,它会变成这样,这是错误的:

所以,我要一个接一个地交换

伊格尼特->哈利,伊格尼特->杰拉德,伊格尼特->芬奇,伊格尼特->艾玛,伊格尼特->唐纳德所以它会变成:
1.安迪
2.巴里
3.查理
4.点火开关
5.唐纳德
6.艾玛
7.时髦的
8.杰拉德
9哈利
10约翰

问题是,如果有数千名参与者,我如何交换?一个接一个地交换很麻烦,而且需要很长时间


没有回答我的问题。我想要更有效的方法(如果有的话)。

这可能看起来不愉快,但希望它能帮助你

set @currentorder=9;
set @correctorder=4;
set @participant_id=9;
update participants set participant_order=participant_order+1 where participant_order between @correctorder and @currentorder-1;
update participants set participant_order=@correctorder where participant_id=@participant_id;

这可能看起来不愉快,但希望它能帮助你

set @currentorder=9;
set @correctorder=4;
set @participant_id=9;
update participants set participant_order=participant_order+1 where participant_order between @correctorder and @currentorder-1;
update participants set participant_order=@correctorder where participant_id=@participant_id;

可能重复的答案肯定不是你想要的答案,但我的一个老问题可以引导你走上正确的道路。=>您如何确定-ignit必须在4?是否有任何维度可供排序,或只是随机排序顺序参与者的顺序是他们的座位顺序。可能的重复答案肯定不是您要寻找的答案,而是我的一个旧问题可以引导您走上正确的轨道。=>您如何确定-ignit必须为4?是否有用于排序的维度,或者只是随机维度?顺序参与者的顺序是他们座位的顺序。