0

選択に基づいて、必要な数の更新を行う必要があります。

「グループ」と「メンバー」の 2 つのテーブルがあるとします。

「グループ」

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 から別の 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

これを行う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 に答える