1

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

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

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

4

2 回答 2

3
DELETE  t2
FROM    topics t1
JOIN    topics t2
ON      t2.name = t1.name
        AND t2.id < t1.id
于 2011-03-31T11:16:39.753 回答
0

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

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

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

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

干杯

于 2011-03-31T11:11:56.810 回答