gpt4 book ai didi

mysql self 加入group_concat并且没有重复

转载 作者:行者123 更新时间:2023-11-29 02:56:45 24 4
gpt4 key购买 nike

我想删除数据库中的重复项。一个标准可以有多个副本,然后将它们组合在一起。

假设 B 是 A 的副本,C 也是 A 的副本,那么应该有这样的结果

*id* | *duplicate*     
A | B, C

但是现在的结果是这样的:

*id* | *duplicate* 
A | B, C
B | C

当然是对的。问题是,我希望在结果中已经显示为 duplicates 的 id 不会在 id 列中再次列出它们自己的重复项。

这是一个例子:http://sqlfiddle.com/#!9/61692/1/0

有什么建议吗?

谢谢,保罗

编辑:

示例的来源(由 Zohar Peled 推荐):

CREATE TABLE duplicates
(`id` int, `Name` varchar(7))
;

INSERT INTO duplicates
(`id`, `Name`)
VALUES
(1, 'Bob'),
(2, 'Bob'),
(3, 'Bob'),
(4, 'Alice')
;

SELECT DISTINCT d1.`id`, GROUP_CONCAT(d2.`id`) as duplicates
FROM `duplicates` as d1, `duplicates` as d2
WHERE
d1.`id`< d2.`id` AND
d1.`Name` = d2.`Name`
GROUP BY d1.`id`

最佳答案

这是一个相当非正统的解决方案,但是嘿...

SELECT MIN(x.id) id
, GROUP_CONCAT(DISTINCT y.id) duplicates
FROM duplicates x
JOIN duplicates y
ON y.name = x.name
AND y.id > x.id
GROUP
BY x.name

关于mysql self 加入group_concat并且没有重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29975554/

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