如何删除表中所有记录在同一
中的重复记录id|name|address
1 | a|b
1 | a|b
1 | a|b
1 | a|b
删除后只剩下一条记录
答案 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已经说过你应该考虑添加一个自动增量键......