Vous pouvez facilement le faire en sélectionnant cette requête dans une autre table, puis en la renommant pour remplacer l'original.
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`;
Notez que ce CREATE
doit être ajusté au format réel de votre tableau. J'ai ajouté la clé unique dans le champ de l'e-mail comme suggestion sur la façon dont vous éviteriez les doublons en premier lieu.
Alternativement, vous pouvez boucler sur ceci
DELETE FROM `table`
WHERE `email` IN (
SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1
) LIMIT 1
Ce qui supprimerait un enregistrement en double par appel. L'importance de la limite est de ne pas supprimer les deux lignes pour tout doublon