Heim >Datenbank >MySQL-Tutorial >Wie finde ich doppelte Zeilen basierend auf mehreren Feldern in einer SQL-Tabelle?

Wie finde ich doppelte Zeilen basierend auf mehreren Feldern in einer SQL-Tabelle?

DDD
DDDOriginal
2025-01-23 01:57:11596Durchsuche

How to Find Duplicate Rows Based on Multiple Fields in a SQL Table?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn