我需要根据选择进行尽可能多的更新。
假设我有两个表“Groups”和“Members”。
“组”
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更改为另一个。
I.e:从“聪明”到“驴”的成员。
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';
我知道我必须将所有名称都放入一个数组中,以便分别更新每个名称,但我也对正确的更新语法感到困惑。
答案 0 :(得分:1)
为什么不简单
UPDATE Members SET GroupID=5 WHERE GroupID=1
只有在必须进行一些无法在SQL中完成的丑陋/复杂处理时(或者在SQL中甚至更加丑陋),才需要使用您的方法。
答案 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' ;