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

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

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

【问题讨论】:

标签: mysql sql


【解决方案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 之外的所有内容。它不会在组内删除。
    猜你喜欢
    • 2021-01-22
    • 2012-04-10
    • 2014-08-17
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 2012-03-11
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多