删除mysql上的重复记录?

时间:2011-03-31 11:06:40

标签: mysql duplicates no-duplicates

我有这个mysql查询,可以找到重复项和每个主题的出现次数:

SELECT name, 
 COUNT(name) AS NumOccurrences
FROM topics
GROUP BY name
HAVING ( COUNT(name) > 1 )

但我要做的是删除找到的所有重复项。我只希望每个主题都有一个唯一的名称,而且没有重复!谢谢

2 个答案:

答案 0 :(得分:3)

DELETE  t2
FROM    topics t1
JOIN    topics t2
ON      t2.name = t1.name
        AND t2.id < t1.id

答案 1 :(得分:0)

我会将所有唯一条目复制到新表中:

CREATE TABLE new_table as
SELECT * FROM old_table WHERE 1 GROUP BY unique_column_name;

检查数据,然后在确定一切正常时删除旧表,并将新表重命名为旧表。

然后将名称列设为唯一,这样您就不必再这样做了。

干杯