Heim >Datenbank >MySQL-Tutorial >Wie finde ich doppelte Zeilen basierend auf mehreren Feldern in einer SQL-Tabelle?
Auffinden doppelter Datensätze mithilfe mehrerer Felder in SQL
Das Identifizieren doppelter Einträge basierend auf einer einzelnen Spalte ist eine einfache SQL-Aufgabe. Um beispielsweise doppelte E-Mails in einer users
-Tabelle zu finden:
<code class="language-sql">SELECT email, COUNT(email) FROM users GROUP BY email HAVING COUNT(email) > 1;</code>
Die Komplexität steigt, wenn Duplikate in mehreren Feldern wie E-Mail und Name identifiziert werden.
Um Zeilen mit identischen E-Mail- und Namenskombinationen zu ermitteln, verwenden Sie diese Abfrage:
<code class="language-sql">SELECT name, email, COUNT(*) FROM users GROUP BY name, email HAVING COUNT(*) > 1;</code>
Dies gruppiert die Daten sowohl nach name
als auch nach email
und filtert dann, um nur die Gruppen mit mehr als einem Eintrag anzuzeigen, wodurch die Duplikate sichtbar werden.
Wie es funktioniert:
Die HAVING
-Klausel ist entscheidend; Es filtert die gruppierten Ergebnisse und stellt sicher, dass nur die Kombinationen von name
und email
zurückgegeben werden, die mehr als einmal vorkommen. Eine typische Ausgabe würde wie folgt aussehen:
<code>| name | email | COUNT(*) | |------|-------------|----------| | Tom | john@example.com | 2 | | Tom | tom@example.com | 2 |</code>
Wichtige Überlegung:
Datenbanksysteme unterscheiden sich in der Handhabung der Gruppierung nicht aggregierter Spalten. Einige erfordern möglicherweise eine explizite Aufnahme in die GROUP BY
-Klausel. Wenn Ihr Datenbanksystem diese implizite Gruppierung nicht unterstützt, müssen Sie die Abfrage entsprechend anpassen.
Das obige ist der detaillierte Inhalt vonWie finde ich doppelte Zeilen basierend auf mehreren Feldern in einer SQL-Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!