删除mysql中的重复记录

时间:2015-03-19 13:10:14

标签: mysql

如何删除表中所有记录在同一

中的重复记录
id|name|address
1 |   a|b
1 |   a|b
1 |   a|b
1 |   a|b

删除后只剩下一条记录

3 个答案:

答案 0 :(得分:1)

在所有表中包含自动递增的主键的充分理由。那你就不会有重复了。

最简单的方法是使用临时表:

create temporary table nodups as
    select distinct *
    from table t;

truncate table t;

insert into t
    select *
    from nodups;

答案 1 :(得分:0)

如果您要求所有记录相同,则只保留单个记录并删除其他记录

DELETE FROM Table WHERE id NOT IN(SELECT id FROM Table LIMIT 1)

答案 2 :(得分:0)

你可以使用

ALTER IGNORE TABLE tablename ADD UNIQUE (id, name, address)

这将删除所有重复的条目,并且还会阻止插入新的重复项。 如果您想稍后插入新的重复项,可以直接删除它。

但是就像Gordon Linoff已经说过你应该考虑添加一个自动增量键......