Heim >Datenbank >MySQL-Tutorial >Wie finde und rufe ich Zeilen mit nicht eindeutigen Spaltenwerten in SQL ab?

Wie finde und rufe ich Zeilen mit nicht eindeutigen Spaltenwerten in SQL ab?

Susan Sarandon
Susan SarandonOriginal
2024-12-19 17:25:09884Durchsuche

How to Find and Retrieve Rows with Non-Unique Column Values in SQL?

Abfragen von Zeilen mit nicht eindeutigen Spaltenwerten

In SQL besteht eine häufige Aufgabe darin, Zeilen abzurufen, in denen sich der Wert einer bestimmten Spalte befindet nicht deutlich. Dies kann hilfreich sein, um doppelte Daten zu identifizieren oder Anomalien zu erkennen.

Beispielszenario

Stellen Sie sich eine Tabelle mit dem Namen „Kunden“ vor, die die folgenden Daten enthält:

CustomerName EmailAddress
Aaron [email protected]
Christy [email protected]
Jason [email protected]
Eric [email protected]
John [email protected]

Um alle Zeilen abzurufen, in denen die Spalte „EmailAddress“ nicht eindeutig ist, können wir Folgendes verwenden Abfrage:

SELECT EmailAddress, CustomerName
FROM Customers
WHERE EmailAddress IN
  (SELECT EmailAddress FROM Customers GROUP BY EmailAddress HAVING COUNT(*) > 1)

Erläuterung

Die IN-Klausel filtert nach EmailAddress-Werten, die in der Unterabfrage gefunden werden. Die Unterabfrage gruppiert alle EmailAddress-Werte und zählt das Vorkommen jedes Werts. Die HAVING-Klausel wählt dann nur die Gruppen mit mehr als einem Vorkommen (d. h. nicht eindeutigen Werten) aus.

Mit diesem Ansatz identifizieren wir effizient Zeilen und geben sie zurück, in denen die Spalte „EmailAddress“ nicht eindeutig ist. Diese Methode ist in den meisten Fällen deutlich schneller als die Verwendung des EXISTS-Operators.

Das obige ist der detaillierte Inhalt vonWie finde und rufe ich Zeilen mit nicht eindeutigen Spaltenwerten in SQL ab?. 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