Du kan ret nemt gøre dette ved at vælge den forespørgsel i en anden tabel og derefter omdøbe den for at erstatte originalen.
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`;
Bemærk, at denne CREATE
skal justeres til dit faktiske tabelformat. Jeg tilføjede den unikke nøgle i e-mail-feltet som et forslag til, hvordan du ville forhindre dubletter i første omgang.
Alternativt kan du sløjfe over dette
DELETE FROM `table`
WHERE `email` IN (
SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1
) LIMIT 1
Hvilket ville slette én dubletpost pr. opkald. Vigtigheden af grænsen er ikke at fjerne begge rækker for nogen duplikat