各トピックの重複と発生数を検出する次のmysqlクエリがあります。
SELECT name,
COUNT(name) AS NumOccurrences
FROM topics
GROUP BY name
HAVING ( COUNT(name) > 1 )
しかし、私がやりたいのは、見つかったすべての重複を削除することです。トピックごとに1つの一意の名前だけが必要で、重複はありません!! ありがとう
各トピックの重複と発生数を検出する次のmysqlクエリがあります。
SELECT name,
COUNT(name) AS NumOccurrences
FROM topics
GROUP BY name
HAVING ( COUNT(name) > 1 )
しかし、私がやりたいのは、見つかったすべての重複を削除することです。トピックごとに1つの一意の名前だけが必要で、重複はありません!! ありがとう
DELETE t2
FROM topics t1
JOIN topics t2
ON t2.name = t1.name
AND t2.id < t1.id
すべての一意のエントリを新しいテーブルにコピーします。
CREATE TABLE new_table as
SELECT * FROM old_table WHERE 1 GROUP BY unique_column_name;
データを確認し、すべてが正常であることが確認できたら古いテーブルを削除し、新しいテーブルの名前を古いテーブルに変更します。
次に、名前の列を一意にして、これを再度行う必要がないようにします。
乾杯