Hallo Jonas,
Ich kenne mich mit MySQL aber nur ganz rudimentär aus, daher hoffe ich auf Eure Hilfe bei zwei bestimmt recht simplen Aufgaben....
warum gehst Du davon aus, dass Deine Aufgaben "recht simpel" sind? Wie definierst Du denn simpel? Für mich bedeutet simpel "einfach". Beide Aufgaben sind meiner Meinung nach _nicht_ einfach.
Doppelte Emails anzeigen
Wie muss ein Query aussehen, der alle Datensätze ausgibt, bei der die Email Adresse doppelt ist? BeispielKlaus Müller (klaus@müller.de)
Klaus F. Müller (klaus@müller.de)
Klaus Müller (km@domain.de)
Stehen die Datensätze genauso in der Datenbank. Grundsätzlich mit der E-Mail-Adresse in runden Klammern? Wirklich? Warum?
Gibt es sonst noch etwas, was in runden Klammern steht?
Wenn nein, dann
1. Wähle nur den Inhalt, der zwischen den runden Klammern steht
LOCATE() und SUBSTR() könnten Dir dabei helfen. Beide findest Du
bei den Zeichenkettenfunktionen
2. Gruppiere nach dieser berechneten Spalte und zähle die Einträge
Lass Dir nur die anzeigen, die mehr als einmal vorkommen.
GROUP BY, COUNT und HAVING, Infos dazu im Abschnitt Functions and Modifiers for Use with GROUP BY Clauses.
Kleine Schwierigkeit: das Feld "email" in der DB kann auch leer sein, diese Einträge sollten dann nicht mit angezeigt werden...
Dies ist nun wirklich eine simple Bedingung. Felder, in denen _nichts_ steht, enthalten den speziellen Wert NULL. Auf diesen prüfst Du mit
IS NULL bzw. IS NOT NULL, siehe Vergleichsoperatoren. Diese Einschränkung gehört übrigens in die WHERE-Klausel.
- Datensätze mit hoher Übereinstimmung auflisten.
Wie kann ich alle Datensätze zeigen, bei denen mindestens, sagen wir, drei Übereinstimmungen existieren? Also z.B. Vorname, Nachname, Email sind identisch, Telefon und Wohnort z.B. unterschiedlich.
Präzisiere bitte diese Anforderung. Diese Aufgabe ist nicht trivial. Gib bitte außerdem an, was Dir zur Verfügung steht. Die Leistungsfähigkeit von MySQL unterscheidet sich von Version zu Version enorm. Ohne Kenntnis der Dir zur Verfügung stehenden Version kann man Dir nicht sinnvoll helfen.
Das alles sollte mir dann als Liste angezeigt werden.
Das ist bei Datenbankabfragen normal.
Freundliche Grüße
Vinzenz