gpt4 book ai didi

mysql - 更新重复列的外键 - mysql

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

我有一个包含产品的表:外键(fk id)、名称和更多数据。
名称重复,但有例如与 fk id 相关的客户
因此我想用第一个匹配的 fk id 更新重复项

示例:

fk id   name
1 abc
2 abc
3 abc
67 abc

更新后的表格:

fk id       name

1 abc

1 abc

1 abc

1 abc

到目前为止,我收到了一个查询,将它们放在一个逗号分隔的列表中,但我缺少更新:

SELECT 
count(*) as amount,
group_concat(name) as names,
group_concat(id) as ids
FROM db.product
GROUP BY name
HAVING amount> 1;

最佳答案

在mysql中你可以使用joins in update statements 。我将创建一个子查询,为每个出现多次的名称返回最低的 id (min())。由于在mysql中你不能从正在更新的同一个表中进行选择,因此在子选择的顶部添加了一层额外的子选择:

UPDATE db.product
INNER JOIN (SELECT * FROM
(SELECT name, min(id) as minid
FROM db.product
GROUP BY name
HAVING count(*)> 1) t2 ) t on t.name=db.product.name
SET db.product.id=t.minid;

关于mysql - 更新重复列的外键 - mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35778630/

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