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