gpt4 book ai didi

php - 使用 MySQL 批量更新多个表

转载 作者:行者123 更新时间:2023-11-29 11:19:48 25 4
gpt4 key购买 nike

有没有办法批量更新多个表。我找到了使用单个查询批量更新以及使用单个查询更新多个表的解决方案。但随后寻找组合解决方案。

例如:目前正在这样做。

UPDATE a, b, c 
SET a.address = "$address", b.address = "$address", c.address = "$address"
WHERE a.id = b.a_id AND a.id = c.a_id AND a.id = 123

UPDATE a, b, c
SET a.address = "$address", b.address = "$address", c.address = "$address"
WHERE a.id = b.a_id AND a.id = c.a_id AND a.id = 234

等等

这是我当前的脚本,它会一一更新每个地址。​​

要更新单个查询中的多个条目,我可以使用类似的方法,

UPDATE a SET address = CASE
WHEN id = 123 THEN 'address1'
WHEN id = 234 THEN 'address2'
END

有没有办法组合这些查询,在单个查询中更新多个表以及多行?

谢谢

最佳答案

我不确定我是否理解您所说的“批量”的意思。我假设您的意思是更新每个表中的多个条目。在这种情况下,您需要一个返回多个要更新的条目的条件。假设 id 是你的 PK,它只会返回一个条目。

您的 WHERE 子句看起来与您在 JOIN 上使用的子句非常相似。也许您应该尝试加入您的表,然后更新它们。看看这个:

https://stackoverflow.com/a/1293347/4024150

<小时/>
UPDATE a JOIN b ON a.id = b.id
SET a.address = '$address', b.address = '$address
WHERE (some clause that will return all the entries you want)

我已将其简化为两个表进行演示,但基本上您的 JOIN 将为您呈现一个在 id 字段上连接的大表。然后,您可以使用 WHERE 子句来标识要在整个连接表中更新的字段。

您在上面说过您找到了批量更新单个表的解决方案。该解决方案与 JOIN 相结合应该会产生所需的结果。

关于php - 使用 MySQL 批量更新多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39122295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com