Heim >Datenbank >MySQL-Tutorial >Wie finde und rufe ich alle doppelten Datensätze in MySQL ab?

Wie finde und rufe ich alle doppelten Datensätze in MySQL ab?

DDD
DDDOriginal
2024-12-20 07:22:13750Durchsuche

How to Find and Retrieve All Duplicate Records in MySQL?

So identifizieren Sie doppelte Datensätze in MySQL

Die Aufgabe, doppelte Datensätze in einer MySQL-Datenbank zu identifizieren, wird normalerweise mit der folgenden Abfrage gelöst:

SELECT address, count(id) as cnt 
FROM list
GROUP BY address 
HAVING cnt > 1

Diese Abfrage liefert jedoch nur die Anzahl der doppelten Datensätze, nicht die tatsächlichen Daten für jede doppelte Zeile. Um die einzelnen doppelten Datensätze abzurufen, ist ein etwas anderer Ansatz erforderlich.

Der Schlüssel besteht darin, die ursprüngliche Abfrage als Unterabfrage umzuschreiben:

SELECT firstname, 
   lastname, 
   list.address 
FROM list
   INNER JOIN (SELECT address
               FROM   list
               GROUP  BY address
               HAVING COUNT(id) > 1) dup
           ON list.address = dup.address;

Diese Unterabfrage identifiziert die doppelten Adressen und die Die äußere Abfrage verwendet diese Informationen, um die Listentabelle zu verknüpfen und alle zugehörigen Daten für jeden doppelten Datensatz abzurufen.

Das obige ist der detaillierte Inhalt vonWie finde und rufe ich alle doppelten Datensätze in MySQL 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