我有这个mysql查询,可以找到重复项和每个主题的出现次数:
SELECT name,
COUNT(name) AS NumOccurrences
FROM topics
GROUP BY name
HAVING ( COUNT(name) > 1 )
但我要做的是删除找到的所有重复项。我只希望每个主题都有一个唯一的名称,而且没有重复!谢谢
答案 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;
检查数据,然后在确定一切正常时删除旧表,并将新表重命名为旧表。
然后将名称列设为唯一,这样您就不必再这样做了。
干杯