そのクエリを別のテーブルに選択し、名前を変更して元のテーブルを置き換えることで、これを非常に簡単に行うことができます。
CREATE TABLE `table2` (
`name` varchar(255),
`email` varchar(255),
UNIQUE KEY `email` (`email`));
INSERT INTO `table2` SELECT `name`, DISTINCT(`email`) FROM `table`;
RENAME TABLE `table` TO `table1`;
RENAME TABLE `table2` TO `table`;
このCREATE
に注意してください 実際のテーブル形式に調整する必要があります。そもそも重複を防ぐ方法を提案するために、メールフィールドに一意のキーを追加しました。
または、これをループすることもできます
DELETE FROM `table`
WHERE `email` IN (
SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1
) LIMIT 1
これにより、呼び出しごとに1つの重複レコードが削除されます。制限の重要性は、重複するすべての行を削除しないことです