U kunt dit vrij eenvoudig doen door die query in een andere tabel te selecteren en deze vervolgens te hernoemen om de originele te vervangen.
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`;
Merk op dat deze CREATE
moet worden aangepast aan uw werkelijke tabelformaat. Ik heb de unieke sleutel aan het e-mailveld toegevoegd als suggestie over hoe je duplicaten in de eerste plaats zou voorkomen.
U kunt dit ook doorlussen
DELETE FROM `table`
WHERE `email` IN (
SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1
) LIMIT 1
Wat één dubbele record per gesprek zou verwijderen. Het belang van de limiet is om niet beide rijen te verwijderen voor een duplicaat