echo $begrüßung;
Was ich nun suche ist ein Request, der mir nur die doppelten Dateneinträge zeigt.
COUNT() in verbindung mit GROUP BY sollte weiterhelfen; in der WHERE-klausel auf > 1 abfragen.
WHERE dürfte noch zu früh sein, HAVING sollte es tun.
SELECT COUNT(*), email FROM tabelle GROUP BY email HAVING COUNT(*) > 1
Und dann wäre noch ein Request gut, der automatisch bei allen doppelten Einträgen alle bis auf einen Eintrag löscht.
ob das mit SQL-mitteln möglich ist, weiß ich nicht.
da wäre dann vielleicht ein script angebracht, welches die ergebnisse obiger abfrage dazu benutzt, einzeln zu löschen.
Mit SQL und Script geht es beispielsweise so (Pseudocode):
while (num_rows('SELECT COUNT(*) FROM tabelle GROUP BY email HAVING COUNT(*) > 1')) {
CREATE TEMPORARY TABLE tmp SELECT id FROM tabelle GROUP BY email HAVING count(*) > 1
DELETE tabelle FROM tabelle,tmp WHERE tabelle.id = tmp.id
DROP TABLE tmp
}
Die temporäre Tabelle wird pro mehrfacher Email-Adresse mit der id eines der Datensätze angelegt. Also so:
id email
1 A
2 A
3 B
4 C
5 C
6 C
Der erste Durchlauf legt für A entweder ID 1 oder 2 und für C entweder 4, 5 oder 6 in die Temp-Tabelle. Im zweiten Durchlauf hat A ist A nur noch einmal vorhanden und wird nicht weiter beachtet, aber von C existierten noch zwei IDs aus 4, 5 und 6, wovon wieder eine beliebige in tmp landet.
echo "$verabschiedung $name";