0

我需要根据选择进行尽可能多的更新。

假设我有两个表“组”和“成员”。

“团体”

GroupName  GroupID
Genius     1
Clever     2
Normal     3
Stupid     4
Donkey     5

“会员”

MemberName     GroupID
John           1
Peter          3
Mary           1
Ashley         2
Robin          1
Louis          5
Bill           4
Paul           5

我想将成员从 GroupID 更改为另一个。

即:从“聪明”到“驴”的成员。

select MemberName from Members where GroupID='1';
while($arr = mysqli_fetch_array($rs, MYSQLI_ASSOC))
{
$name = $arr['MemberName'];
}

然后我会将所有选定的成员更新到新组中:

$sql .= update Members set GroupID='5' where MemberName='$name';

我知道我必须将所有名称放入一个数组中才能分别更新每个名称,但我对正确的更新语法也有些困惑。

4

2 回答 2

1

为什么不简单

UPDATE Members SET GroupID=5 WHERE GroupID=1

?

仅当您必须进行一些无法在 SQL 中完成的丑陋/复杂处理(或者在 SQL 中甚至更丑陋)时,才需要您的方法。

于 2013-01-11T04:17:18.443 回答
1

您可以执行此操作的一种方法是执行以下操作:

SELECT  @DonkeyGrpID:=GroupID 
FROM Groups 
WHERE GroupName = 'Donkey';

UPDATE Members M, Groups G  
SET M.GroupID = @DonkeyGrpID
WHERE M.GroupID = G.GroupID AND G.GroupName = 'Clever' ;
于 2013-01-11T05:43:17.907 回答