Vinzenz Mai: Doppelte Werte filtern (nur in einer Spalte)

Beitrag lesen

Hallo Honda,

ich möchte die in einer MySQL-Datenbank gespeicherten Userdaten ausgeben.

ID, Vorname, Alter, Emailadresse

Hierbei sollen jedoch alle Zeilen mit in der eine doppelte Emailadresse vorkommt rausgefiltert werden.

was meinst Du damit genau.

1. Möglichkeit:
Sollen alle Zeilen mit einer E-Mailadresse, die doppelt vorkommt überhaupt nicht angezeigt werden?

Hier hilft Dir Schlampigkeit von MySQL. Du gruppierst nach E-Mailadresse und läßt Dir nur die Daten anzeigen, bei denen die COUNT()-Funktion 1 zurückliefert.

2. Möglichkeit
Zeige mir alle Datensätze mit einer E-Mailadresse an. Zu jeder E-Mailadresse, die mehr als einmal vorkommt, zeige mir nur einen Datensatz an?

Bei der 2. Möglichkeit solltest Du noch angeben, ob Du einen bestimmten Datensatz angezeigt bekommen willst oder ob es Dir egal ist, welche Daten zur E-Mailadresse angezeigt werden.

Wäre letzteres der Fall, so kannst Du einfach die Schlampigkeit von MySQL bezüglich GROUP BY ausnutzen und einfach nach der E-Mail-Adresse gruppieren. Dann werden Dir zufällige Daten zu mehrfachen E-Mailadressen angezeigt.

Wie kann ich das nun aber mit den anderen Spalten kombinieren?
Ich verwende MySQL 4.1.

Im sinnvollsten Fall mit einem Subselect. Das ist sauber, geht unter MySQL 4.1, geht unter anderen DBMSen. Gib bitte an, was Du willst.

Freundliche Grüße

Vinzenz