删除 MySQL 中的重复条目 [重复]

Posted

技术标签:

【中文标题】删除 MySQL 中的重复条目 [重复]【英文标题】:Remove duplicate entries in MySQL [duplicate] 【发布时间】:2014-08-01 14:48:56 【问题描述】:

我有一个包含多个相同条目的表,我想删除重复的条目,但如果有意义的话,保留最近的记录。

我有唯一的 ID 列,而我希望只有 1 个相同整数的列是“所有者”列,因为不需要超过一个。

【问题讨论】:

请包括您的表结构,最好是您自己的尝试。 这里的第二个答案:***.com/questions/2630440/… 【参考方案1】:

您可以创建一个临时表并将所需的数据放在那里。然后删除原始表中的所有数据并从临时表中插入数据。喜欢:

CREATE TABLE TMP (SELECT DISTINCT * FROM <ORIGINAL_TABLE>);
TRUNCATE TABLE <ORIGINAL_TABLE>;
INSERT INTO <ORIGINAL_TABLE> (SELECT * FROM TMP);

【讨论】:

【参考方案2】:
DELETE FROM table WHERE `id` NOT IN (
    SELECT `id` FROM table 
    GROUP BY `id`
    ORDER BY `date` DESC
    LIMIT 1
);

【讨论】:

子查询只返回一个 ID,所以这会删除除那个 ID 之外的所有内容。它不会在组内删除。

以上是关于删除 MySQL 中的重复条目 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从mySQL中删除重复的条目/行

在 MySQL 表中保留一个副本并删除其余的 [重复]

Python:根据条目的位置删除列表中的单个条目[重复]

删除sql中的所有表条目[重复]

合并两个数组并删除php中的重复条目

如何使用 C# 删除数据表中的重复条目? [复制]