Du kan ganska enkelt göra detta genom att välja den frågan i en annan tabell och sedan byta namn på den för att ersätta originalet.
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`;
Observera att denna CREATE
bör justeras till ditt faktiska tabellformat. Jag lade till den unika nyckeln i e-postfältet som ett förslag på hur du skulle förhindra dubbletter i första hand.
Alternativt kan du gå över detta
DELETE FROM `table`
WHERE `email` IN (
SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1
) LIMIT 1
Vilket skulle radera en dubblettpost per samtal. Vikten av gränsen är att inte ta bort båda raderna för någon dubblett