Ik heb een lijst van emailadressen in mijn database en ik wil de dubbel voorkomende verwijderen. Is er een PHP script die dat doet?

Bedankt!
$arrEmailadressen = array_unqiue($arrEmailadressen);

Zet alles in een array en plaats het vervolgens weer terug.
Hoe zet ik alles in Array? :$
OMG, dat is dus de basis van mysql :)

$arr = array();
$sql = "SELECT email FROM emailadress";
$query = mysql_query($sql);
while($array = mysql_fetch_assoc($query))
{
$arr[] = $array['email'];
}
$arr = array_unique($arr);

DELETE FROM
  tabel as t1
WHERE
  (SELECT COUNT(*) FROM tabel as t2 WHERE t2.email = t1.email) > 2


Volgens mij werkt dit ook al. Je hoeft hem alleen maar in phpMyAdmin uit te voeren. Zou wel effe een backupje maken voordat je hem uitvoert :-P, ben er namelijk niet helemaal zeker van.
@Jezpur, volgens mij heb je gedeeltelijk gelijk, deze zal toch alles wat meer dan twee keer voorkomt verwijderen? dus niet alleen één resultaat?
jezpur en terecht dit kan volgens mij nooit werken

@TS.

Doe eens

CREATE TABLE tabel2 AS SELECT * FROM tabel1 WHERE id = 1

nu heb je een identieke tabel gemaakt met 1 rij erin.

Deze rij gooien we weer weg met DELETE FROM tabel2

Nu maak je in phpmyadmin een UNIQUE constraint aan op tabel2 op het veld email.

Nu tabel1 overpompen met INSERT INTO tabel2 SELECT * FROM tabel1

Er zal nu enkele keren een foutmelding komen op de unique constraint maar die kun je negeren
@steen: dan zou die 2 dus nog een 1 moeten worden. Hm, ja, je hebt gelijk. Maar volgens Klaasjan zal het niet werken. Helaas :-).
Bedankt allemaal!

@Steen, bij jouw code zullen de dubbel voorkomende emailadressen ook verwijderd worden of alleen geselecteerd worden?
Dit is alleen een begin:
Je zult nog 'TRUNCATE TABLE emailadressen' en een lus met 'INSERT INTO emailadressen (email) VALUE ('.$email.')' moeten doen
OMG het lukt me niet :'( Ik ben echt een beginner met SQL... (A)

Okee, laten we maar anders doen. Hoe kan ik alle unieke emailadressen echo'en gescheiden door een coma?

Door foreach toch?

Reageren