Datenbank abfrage

T0bbes

Grünschnabel
Moin Moin ;)

Ich wollte ein Script durch die Datenbank huschen lassen, welche Benutzer raus sucht, welche Doppelte Email Adressen haben.

Sprich er soll ich den ersten Benutzer nehmen, seine Email Adresse merken und dann mit den restlichen Einträgen in der Datenbank vergleichen, ob diese Email Adresse schon gespeichert wurde. Wie könnte man so was am besten machen? Und danach halt den nächsten Benutzer nehmen ;)


Gruß
 
In diesem Thread hat der User lmarkus31 dieses Query geposted.

SQL:
select * 
  FROM tabelle 
 WHERE (vorname,email) IN
      select vorname,email 
        from tabelle 
       group by vorname,email 
      having COUNT(*)>1)
 
Solchen Dingen kann man vorbeugen. Einfach die Spalte in der Datenbank auf UNIQUE setzen. Das löst dein momentanes Problem zwar noch nicht, aber für die Zukunft wäre es vllt. sinnvoll.

Desweiteren kann man es, wie Felix Jacobi schon geschrieben hat, einen SUBSELECT machen, allerdings muss man aufpassen, welchen der beiden oder mehreren Benutzerkonten man löscht.
 
Ich will keine Benutzerkonten löschen, sondern diese Doppelten Accounts einfach ausgeben lassen, damit sich andere darum kümmern können ;)

Sollen subselects nicht extrem Resourcen fressend sein, bei größeren Datenmängen?

T0bbes
 
Hi,

eigentlich tuts doch das hier, oder:

SQL:
select email, count(*)  as anzahl from tabelle group by email order by 2 desc

Da kriegst du alle emails und eben auch, wie oft sie vorhanden sind.
 

Neue Beiträge

Zurück