php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.03.2006, 12:59  
Neuer Benutzer
 
Registriert seit: 22.03.2006
Beiträge: 2
Lampe
Standard Dubletten - aber anders

hallo

ich hätte da mal ein kleines Problem. Und zwar möchte ich mir Dubletten (in meinem Fall doppelte Namen) aus der Datenbank ausgeben lassen. googeln und suchefunktion hat eigentlich immer ergeben die spalte zu zählen und gruppiert ausgeben zu lassen.
also sowas in der Art:
Code:
SELECT name, mail, COUNT(name) AS Anzahl
FROM  tabelle
GROUP BY name
HAVING Anzahl > 1
Aber ich möchte es nicht gruppiert ausgegeben haben, sondern jeden Eintrag für sich, damit er (mit php eingebaut) jeder für sich gelöscht oder editiert werden kann. Das ist soweit fertig nur die Ausgabe der Dubletten würde noch fehlen.

gruß
Lampe
Lampe ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.03.2006, 21:17  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Ein möglicher Ansatz:
Code:
SELECT
    t1.name,
    t1.email,
FROM
    tabelle AS t1
INNER JOIN
    tabelle AS t2
ON
    t1.name = t2.name AND
    t1.email != t2.email
xabbuh ist offline   Mit Zitat antworten
Alt 23.03.2006, 10:04  
Neuer Benutzer
 
Registriert seit: 22.03.2006
Beiträge: 2
Lampe
Standard

danke für die Antwort. Nach etlichen Stunden gestern hatte ich einen ähnlichen Ansatz. Und zwar den gesamten Inhalt der Tabelle in eine temporäre Tabelle zu kopieren und dann genauso vergleichen.
Deine Variante klingt eigentlich besser aber dabei ackert der sich halb tot. Die DB umfasst etwa 20.000 Einträge momentan (zu testzwecken) und hat real etwa 80.000. Ein 'paar' mehr Spalten sind auch vorhanden (16 insgesamt, aber verglichen werden nur 2).
Mit einem Limit von 30 brauch der trotzdem ganze 15 Sekunden bei mir. Warum auch immer ... mit meiner Variante etwa 0,3 Sekunden (inklusive erstellen einer temp-Tabelle) aber wehe ich bau noch einen Zusatzbefehl alá 'group by id' ein. Denn dauerts gut 107 Sekunden. Mit Distincts klappts dann wieder wunderbar. Das muss mal einer verstehen ...

Fazit: habs noch (einigermaßen unsauber) hingekriegt. Aber danke für deine Mühen..
Lampe ist offline   Mit Zitat antworten
Alt 23.03.2006, 20:32  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Sind denn entsprechende Indexe vorhanden gewesen?
xabbuh ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
2 Tabellen, 1 Ausgabe (+Dubletten abfangen) madSoul Datenbanken 2 04.09.2006 10:37
Multi-Array Dubletten löschen und sortieren PHP Tipps 2005-2 3 11.06.2005 00:25
Dubletten herausfiltern mit verbinden 2er tabellen. robo47 Datenbanken 2 12.05.2005 11:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql dubletten finden, sql dubletten filtern, sql dubletten, php dubletten finden, php dubletten, sql dubletten löschen, dubletten finden sql, dubletten php, sql doubletten finden, php dubletten löschen, php dupletten, dubletten sql, dublettenprüfung sql, php dublettenabgleich, php doubletten, sql doubletten, dubletten finden php, php dubletten entfernen, dubletten löschen php, sql doubletten filtern

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.