MYSQL UPDATE 查询多个值
Posted
技术标签:
【中文标题】MYSQL UPDATE 查询多个值【英文标题】:MYSQL UPDATE query for multiple values 【发布时间】:2019-01-02 04:52:56 【问题描述】:希望从另一个表中的值更新一个表。这些表连接到一个人的名字和姓氏。问题是我们有重复的记录,我们试图为每条记录连接一个值,但是当查询结束时,它只会找到第一条记录。 Table1 和 Table2 都包含大约 20k 条记录。
当前查询
UPDATE table1, table2 SET table1.value = CONCAT(table1.pet,",",table2.pet)
WHERE table1.fName = table2.fName AND table1.lName = table2.lName;
表 1 示例
fName lName pet
===================
John Doe bird
Jane Doe bird
表2示例
fName lName pet
===================
John Doe dog
Jane Doe dog
John Doe fish
John Doe cat
表 1 中的预期结果
fName lName pet
===================
John Doe bird,dog,fish,cat
Jane Doe bird,dog
我们目前得到的结果
fName lName pet
===================
John Doe bird,dog
Jane Doe bird,dog
感谢任何帮助!
【问题讨论】:
【参考方案1】:您可以在下面尝试 - 使用 group_concat()
函数
update Table1 a
join
(
select fName,lName, group_concat(pet) as pet1
from Table2
group by fName,lName
)b on a.fName=b.fName and a.lName=b.lName
set a.pet=concat(a.pet,',',pet1)
【讨论】:
group_concat 有文本限制,如果这在他的服务器上很小,这可能会造成麻烦。【参考方案2】:你也可以试试这个
UPDATE Table1 X SET
X.Column1=Y.column2
from(
select Column2 from tabel2
where column3=column4
) Y where X.column4=Y.column4
【讨论】:
以上是关于MYSQL UPDATE 查询多个值的主要内容,如果未能解决你的问题,请参考以下文章
错误:来自 ASP.NET 的 UPDATE 查询中的“没有为一个或多个必需参数提供值”