Możesz to całkiem łatwo zrobić, wybierając to zapytanie do innej tabeli, a następnie zmieniając jego nazwę, aby zastąpić oryginał.
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`;
Zauważ, że to CREATE
należy dostosować do aktualnego formatu tabeli. Dodałem unikalny klucz w polu e-mail jako sugestię, jak w pierwszej kolejności zapobiegać duplikatom.
Alternatywnie możesz to zrobić w pętli
DELETE FROM `table`
WHERE `email` IN (
SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1
) LIMIT 1
Co usunęłoby jeden zduplikowany rekord na rozmowę. Ważne jest, aby nie usuwać obu wierszy w przypadku duplikatów