Puoi farlo abbastanza facilmente selezionando quella query in un'altra tabella, quindi rinominandola per sostituire l'originale.
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`;
Nota che questo CREATE
dovrebbe essere adattato al formato della tabella attuale. Ho aggiunto la chiave univoca nel campo dell'e-mail come suggerimento su come prevenire i duplicati in primo luogo.
In alternativa, puoi eseguire il loop su questo
DELETE FROM `table`
WHERE `email` IN (
SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1
) LIMIT 1
Che eliminerebbe un record duplicato per chiamata. L'importanza del limite è di non rimuovere entrambe le righe per eventuali duplicati