25. november 2004 - 03:17Der er
15 kommentarer og 1 løsning
Fjerne dobbelte e-mails
Jeg har en database med en masse mails der er til mit nyhedsbrev. Men ved en fejl har fores system godkendt dubletter :(
Nu har jeg så 4600 mail adresser og en del af dem er dubletter :( Er der nogle der har en ide til hvordan jeg kan lave et script der ligger fjerne dem ? Eller kan man køre en Queue analyzer kode som så kan gøre det?
Du kan køre en SQL på databasen DELETE * FROM email WHERE id NOT IN (SELECT First(email.id) AS FørsteOfid FROM email GROUP BY email.email);
Jeg har en tabel som hedder email, den indeholder email, navn og id. Ovenstående sletter alle andre end den første forekomst af emailadressen uanset navnet på brugeren.
så men sætning ser såden her ud. er det rigtig? DELETE * FROM NL_Recipients WHERE id NOT IN (SELECT First(email.id) AS FørsteOfid FROM NL_Recipients GROUP BY email.email);
Jeg får de her fejl. Server: Msg 170, Level 15, State 1, Line 1 Line 1: Incorrect syntax near '*'. Server: Msg 195, Level 15, State 1, Line 1 'First' is not a recognized function name.
Hmm, jeg var sikker på at jeg havde lagt et nyt svar.
Jeg har lidt problemer med min mysql server, så det er ikke testet, men prøv DELETE FROM NL_Recipients WHERE id NOT IN (SELECT Min(email.id) AS mid FROM NL_Recipients GROUP BY email.email);
du skal ændre email.id, til navnetpåtabel.(navnet på idfelt) og det samme med email.email
Server: Msg 107, Level 16, State 2, Line 1 The column prefix 'Email' does not match with a table name or alias name used in the query. Server: Msg 107, Level 16, State 1, Line 1 The column prefix 'Email' does not match with a table name or alias name used in the query.
ok du har en tabel osm hedder NLRecipients, med felteren id og email. Hvis det er korrekt, skal der som jeg prøvede at antyde stå: DELETE FROM NL_Recipients WHERE ID NOT IN (SELECT Min(FROM NL_Recipients.ID) AS mid FROM NL_Recipients GROUP BY FROM NL_Recipients.Email);
Hmm, der er tydeligvis fejl i det jeg skrev. Undskyld. Kan ikke få min sql server til at virke, men prøv følgende. Skal nok lige selv teste det hvis den kommer til at virke senere. Men prøv nedenstående. Der var tydeligvis alt for mange FROM i ovensteående. DELETE FROM NL_Recipients WHERE ID NOT IN (SELECT Min(NL_Recipients.ID) AS mid FROM NL_Recipients GROUP BY NL_Recipients.Email);
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.