php - 在 Mysql PHP 中交换记录/行

标签 php mysql database

<分区>

我在 mysql 中有参与者表。比如表格数据是这样的 enter image description here

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

enter image description here

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

Ignit -> Harry, Ignit->Gerrard, Ignit->Funky, Ignit->Emma, Ignit->Donald 所以它会变成:
1.安迪
2.巴里
3.查理
4. 点燃
5.唐纳德
6.艾玛
7. 时髦
8. 杰拉德
9.哈利
10.约翰

问题是,如果有数千人参加,我该如何交换?一个一个交换很麻烦,需要很长时间。

Making changes to multiple records based on change of single record with SQL不回答我的问题。我想要更有效的方法(如果有的话)。

最佳答案

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

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;

关于php - 在 Mysql PHP 中交换记录/行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42197926/

相关文章:

php - 月份名称到月份编号 - 2 月为 03?

Mysql性能查询

mysql - MySQL 的 SQL 特定编程语言名称是什么?

mysql - 数据库模型 : group similar images together

php - MySQL 在线游戏性能高分榜

python - 如何使用 python 将值列表插入到 mysql 数据库中?

java - 标准 XAConnectionHandle :prepareStatement should not be used outside an EJBServer

php - 在 codeigniter 中找不到我的核心类 My_head

javascript - 如何将列表框的值存储到数组中,然后使用它将其数据显示到另一个页面 php

php - 上传同一个表中的多个文件时出错