gpt4 book ai didi

mysql - 删除重复行,不保留一行

转载 作者:行者123 更新时间:2023-11-30 23:26:16 25 4
gpt4 key购买 nike

我需要一个遍历数据库中每个条目的查询,检查是否有一个值在数据库中的其他地方重复,如果是 - 删除两个条目(或全部,如果超过两个)。

问题是条目是 URL,最多 255 个字符,无法识别行。由于性能限制,Stack Overflow 上的一些现有答案对我不起作用,或者它们使用的 uniqueid 在处理字符串时显然不起作用。

长版:

我有两个包含 URL(且仅包含 URL)的数据库。一个数据库有大约 3,000 个 url,另一个大约有 1,000 个。

但是,这 1,000 个 url 中的大部分是从 3,000 个 url 数据库中提取的。我需要将 1,000 合并到 3,000 作为仅限新条目

为此,我创建了第三个数据库,其中包含来自两个表的组合 URL,大约 4,000 个条目。我需要在这个数据库中找到所有重复的条目并删除它们(它们都没有留下任何一个)。

我已经关注了这个网站上的几个例子的查询,但是每当我尝试删除这两个条目时,它最终会删除所有条目,或者给出 sql 错误。


或者:我有两个数据库,每个数据库都包含单独的数据库。我需要将一个数据库中的每一行与另一个数据库进行比较,以找出不重复的行,然后将它们添加到第三个数据库中。

最佳答案

既然您正在寻找 SQL 解决方案,那么这里就是一个。为简单起见,让我们假设您的表只有一列。然而,这当然适用于任何数量的领域:

CREATE TABLE `allkindsofvalues` (
`value` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

以下一系列查询将完成您正在寻找的内容:

CREATE TABLE allkindsofvalues_temp LIKE allkindsofvalues;

INSERT INTO allkindsofvalues_temp SELECT * FROM allkindsofvalues akv1 WHERE (SELECT COUNT(*) FROM allkindsofvalues akv2 WHERE akv1.value = akv2.value) = 1;

DROP TABLE allkindsofvalues;
RENAME TABLE allkindsofvalues_temp to allkindsofvalues;

关于mysql - 删除重复行,不保留一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203596/

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