datenbank auf doppelte einträge überprüfen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

datenbank auf doppelte einträge überprüfen

Beitrag von mgutt »

Ich habe zwei Emaildatenbanken fusioniert.

Dummerweise waren da auch Einträge wie "mailto:..." enthalten. Die habe ich nun entfernt.. also das "mailto:". Jetzt kann es aber sein, dass ich zwei mal die gleiche Emailadresse gespeichert habe.

Wie könnte ich das nun prüfen lassen und bei Bedarf entfernen?

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Spezial
Mitglied
Beiträge: 135
Registriert: 15.07.2004 08:53
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Spezial »

da gibts soweit ich weiß ne sql funktion zu. leider weiß ich nicht wie die heißt oder so.
aber notfalls könnte man es so machen, das du jeden einzelnen eintrag ausliest, ihn dann in ner whileschleife durchlaufen lässt und jedes mal ne anfrage machst über mysql_num_rows() wie oft der eintrag da ist und dann noch via if guckst ob es größer 1 ist und wenn ja löscht du alle einträge mit der email limit = insgesamt - 1.

ist aber eine sehr unsaubere lösung ;) aber was besseres weiß ich nicht. sry.

greetz
Wenn Chuck Norris ins Wasser fällt, wird er nicht nass…aber das Wasser wird Chuck Norris.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

ne es sind leider zu viele emailadressen.. das würde zu lange dauern.

distinct z.b. prüft auf doppelte und gibt keine doppelten aus.. aber ich bräuchte ja das gegenteil.

gruß
Zuletzt geändert von mgutt am 11.05.2006 16:22, insgesamt 1-mal geändert.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Ich hab gerade mal ein bisschen getestet, aber irgendwie mag mich MySQL heute nicht (oder ich bin zu untalentiert :D ):

Code: Alles auswählen

SELECT e1.* FROM emails e1, emails e2
  WHERE e1.email = e2.email
  GROUP BY e1.email
  HAVING COUNT(e2.email) > 1
Das gibt dir zumindest mal die doppelten Adressen aus, wie du allerdings alle Einträge ausgeben lassen kannst, weiß ich im Moment leider nicht. :(
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Das ist es glaube ich:

Code: Alles auswählen

SELECT DISTINCT email, count(email) as anzahl FROM emails_table GROUP BY email HAVING count(email)>1
EDIT:

Das klappt, aber dummerweise kann ich im phpmyadmin in den Ergebnissen nichts auswählen. Die gewohnte Ansicht mit bearbeiten etc. kann ja nicht dargestellt werden, weil der einfach nur die Summen darstellt und das betreffende Ergebnis. Ich könnte natürlich alle einzeln rausschreiben, aber das ist auch wieder nicht so sinnvoll :D
Zuletzt geändert von mgutt am 11.05.2006 16:39, insgesamt 1-mal geändert.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Hmm, mit der Zeit wird mir SQL eindeutig zu hoch... *g*
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

*edit* gemacht :D
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Eine Möglichkeit wäre

Code: Alles auswählen

INSERT INTO neuetabelle (email) SELECT DISTINCT email FROM altetabelle
KB:knigge
Antworten

Zurück zu „Coding & Technik“