Eine vollständige Anleitung zum Abfragen und Löschen doppelter Datensätze in MySQL

Eine vollständige Anleitung zum Abfragen und Löschen doppelter Datensätze in MySQL

Vorwort

In diesem Artikel werden hauptsächlich die Methoden zum Abfragen und Löschen doppelter Datensätze in MySQL vorgestellt. Er wird zu Ihrer Information und zum Lernen weitergegeben. Werfen wir einen Blick auf die ausführliche Einführung:

Alle Datensätze mit doppelten Titeln finden:

Wählen Sie Titel, Anzahl(*) als Anzahl aus der Benutzertabelle, gruppieren Sie nach Titel mit Anzahl > 1;
SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Titel = a.Titel) > 1) ORDER BY Titel DESC

1. Suchen Sie nach doppelten Datensätzen

1. Alle doppelten Datensätze finden

SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Titel = a.Titel) > 1) ORDER BY Titel DESC

2. Filtern Sie doppelte Datensätze (es wird nur einer angezeigt)

Wählen Sie * aus HZT, wobei ID in (Wählen Sie Max(ID) aus HZT nach Titel gruppieren)

Hinweis: Hier wird der Datensatz mit der größten ID angezeigt

2. Löschen Sie doppelte Datensätze

1. Löschen Sie alle doppelten Datensätze ( mit Vorsicht verwenden )

Tabelle löschen, in der sich die Felder wiederholen (Wiederholte Felder aus Tabelle auswählen, nach wiederholten Feldern gruppieren, deren Anzahl(*)>1 ist)

2. Behalten Sie eines (das dürfte das sein, was die meisten Leute brauchen^_^)

HZT löschen, bei denen die ID nicht vorhanden ist (Max. (ID) aus HZT-Gruppe nach Titel auswählen)

Hinweis: Der Datensatz mit der größten ID wird hier beibehalten

3. Beispiele

1. Suchen Sie in der Tabelle nach redundanten doppelten Datensätzen. Doppelte Datensätze werden anhand eines einzigen Felds (peopleId) ermittelt.

Wählen Sie * aus den Personen, bei denen die Personen-ID in (Wählen Sie die Personen-ID aus der Personengruppe nach Personen-ID mit der Anzahl (Personen-ID) > 1) ist.

2. Löschen Sie redundante doppelte Datensätze in der Tabelle. Doppelte Datensätze werden anhand eines einzelnen Felds (peopleId) ermittelt. Nur der Datensatz mit der kleinsten Zeilen-ID wird beibehalten.

Löschen aus Personen, bei denen die Personen-ID enthalten ist (Wählen Sie die Personen-ID aus der Personengruppe nach Personen-ID mit der Anzahl (Personen-ID) > 1) und die Zeilen-ID nicht enthalten ist (Wählen Sie min (Zeilen-ID) aus der Personengruppe nach Personen-ID mit der Anzahl (Personen-ID) > 1).

3. Suchen Sie nach redundanten doppelten Datensätzen in der Tabelle (mehrere Felder).

wähle * aus Lebenslauf a, wobei (a.peopleId,a.seq) in (wähle peopleId,seq aus Lebenslauf, gruppiere nach peopleId,seq mit count(*) > 1)

4. Löschen Sie redundante doppelte Datensätze (mehrere Felder) in der Tabelle und lassen Sie nur den Datensatz mit der kleinsten Zeilen-ID übrig

lösche aus vitae a, wobei (a.peopleId,a.seq) in (wähle peopleId,seq aus vitae-Gruppe nach peopleId,seq mit count(*) > 1) und rowid nicht in (wähle min(rowid) aus vitae-Gruppe nach peopleId,seq mit count(*)>1)

5. Suchen Sie redundante doppelte Datensätze (mehrere Felder) in der Tabelle, ausgenommen den Datensatz mit der kleinsten Zeilen-ID

wähle * aus Lebenslauf a, wobei (a.peopleId,a.seq) in (wähle peopleId,seq aus Lebenslauf, gruppiere nach peopleId,seq mit count(*) > 1) und rowid nicht in (wähle min(rowid) aus Lebenslauf, gruppiere nach peopleId,seq mit count(*)>1)

4. Ergänzung

Es gibt mehr als zwei doppelte Datensätze. Einer ist ein vollständig doppelter Datensatz, d. h. ein Datensatz, bei dem alle Felder doppelt vorhanden sind. Der andere ist ein Datensatz, bei dem einige Schlüsselfelder doppelt vorhanden sind, z. B. ist das Feld „Name“ doppelt vorhanden, während andere Felder möglicherweise nicht doppelt vorhanden sind oder doppelt vorhanden sind und ignoriert werden können.

1. Für die erste Art der Wiederholung ist es einfacher zu lösen. Verwenden Sie

Wählen Sie ein eindeutiges * aus Tabellenname aus.

Sie können einen Ergebnissatz ohne doppelte Datensätze erhalten.

Wenn in der Tabelle doppelte Datensätze gelöscht werden müssen (nur ein doppelter Datensatz beibehalten werden soll), können Sie ihn wie folgt löschen:

Wählen Sie ein eindeutiges * in #Tmp aus Tabellenname aus.
Tabelle Tabellenname löschen
Wählen Sie * in Tabellenname aus #Tmp
Tabelle löschen #Tmp

Diese Duplizierung tritt aufgrund eines schlechten Tabellendesigns auf und kann durch das Hinzufügen einer eindeutigen Indexspalte behoben werden.

2. Bei dieser Art von Duplikatsproblem muss normalerweise der erste Datensatz der Duplikatsaufzeichnungen beibehalten werden. Die Vorgehensweise ist wie folgt

Angenommen, es gibt wiederholte Felder mit den Namen „Name“ und „Adresse“ und Sie möchten für diese beiden Felder einen eindeutigen Ergebnissatz erhalten.

Wählen Sie Identität (int, 1,1) als Auto-ID, * in #Tmp aus Tabellenname
Wählen Sie min(autoID) als AutoID in #Tmp2 aus der #Tmp-Gruppe nach Name, AutoID
wähle * aus #Tmp, wobei autoID in (wähle autoID aus #tmp2) ist

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels Ihnen bei Ihrem Studium oder Ihrer Arbeit helfen kann. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So fragen Sie in MySQL nach dem Zufallsprinzip mehrere Daten ab
  • So fragen Sie doppelte Daten in einer MySQL-Tabelle ab
  • MySQL-Abfrageanweisung von Zeile zu Zeile
  • Kontinuierliche Aufzeichnungsmethode für MySQL-Abfragen

<<:  Detaillierte Erläuterung der Nest.js-Parametervalidierung und des benutzerdefinierten Rückgabedatenformats

>>:  So installieren Sie Git unter Linux

Artikel empfehlen

MySQL-Trigger: Erstellen und Verwenden von Triggern

Dieser Artikel beschreibt anhand von Beispielen d...

Wie gut kennen Sie sich mit reinen HTML-Tags aus?

Die folgenden HTML-Tags umfassen grundsätzlich all...

Einfaches MySQL-Beispiel zum Sortieren chinesischer Schriftzeichen nach Pinyin

Wenn das Feld, in dem der Name gespeichert ist, d...

Schritte zum Upgrade von CentOS6 auf Glibc

Inhaltsverzeichnis Hintergrund Kompilieren Sie gl...

Zwei Möglichkeiten zum Einführen von SVG-Symbolen in Vue

So führen Sie SVG-Symbole in Vue ein Methode 1 zu...

Eine kurze Analyse der Verwendung von watchEffect in Vue3

Vorwort Jeder sollte mit der Watch-API in vue2 ve...

Vue implementiert das Hinzufügen von Wasserzeichen zu hochgeladenen Bildern

In diesem Artikel wird der spezifische Implementi...

JavaScript imitiert Xiaomi-Karusselleffekt

Dieser Artikel ist eine selbstgeschriebene Nachah...

5 Möglichkeiten zum Senden von E-Mails in der Linux-Befehlszeile (empfohlen)

Wenn Sie eine E-Mail in einem Shell-Skript erstel...

Implementierungsprinzip und Nutzungsanalyse des Apache Bench-Stresstest-Tools

1: Durchsatz (Anfragen pro Sekunde) Eine quantita...

Drei gängige Methoden, um HTML-Seiten nach 3 Sekunden automatisch zu springen

In der Praxis stoßen wir häufig auf ein Problem: ...

So installieren Sie einen SVN-Server unter Linux

1. Yum-Installation yum installiere Subversion 2....

Detailliertes Tutorial zum Upgrade von Zabbix Monitoring 4.4 auf 5.0

1. Zabbix-Backup [root@iZ2zeapnvuohe8p14289u6Z /]...