MySQL-Abfrage doppelter Daten (löschen Sie doppelte Daten und behalten Sie die Daten mit der kleinsten ID als einzige Daten)

MySQL-Abfrage doppelter Daten (löschen Sie doppelte Daten und behalten Sie die Daten mit der kleinsten ID als einzige Daten)

Entwicklungshintergrund:

Ich arbeite derzeit an einer Funktion zum Importieren von Batchdaten in eine MySQL-Datenbank. Beim Batchimport können wir erkennen, dass solche Daten vor dem Einfügen in die Datenbank nicht als Duplikate eingestuft werden. Daher wird erst nach dem Import aller Daten eine Anweisung zum Löschen ausgeführt, um die Eindeutigkeit der Daten sicherzustellen.

Werfen wir einen Blick auf die ausführliche Einführung.

Tatsächlicher Kampf:

Die Tabellenstruktur ist in der folgenden Abbildung dargestellt:

Zeigt an: Marke

arbeiten:

Mit SQL-Anweisungen können Sie doppelte Daten abfragen:

SELECT * from brand WHERE Markenname IN (
select brandName from brand GROUP BY brandName HAVING COUNT(brandName)>1 #Die Bedingung ist, dass die Anzahl der doppelten Daten größer als 1 ist)

Verwenden Sie SQL, um redundante doppelte Daten zu löschen und die eindeutigen Daten mit der kleinsten ID zu behalten:

Notiz:

Falsches SQL: DELETE FROM brand WHERE brandName IN (select brandName from brand GROUP BY brandName HAVING COUNT(brandName)>1)
UND ID NICHT IN (wählen Sie MIN(ID) aus der Marke GROUP BY Markenname HAVING COUNT(Markenname)>1)

Tipp: Sie können die Zieltabelle „Marke“ für die Aktualisierung nicht in der FROM-Klausel angeben.

Der Grund ist: Die direkt gefundenen Daten können nicht als Bedingung zum Löschen von Daten verwendet werden. Wir sollten zuerst eine temporäre Tabelle für die gefundenen Daten erstellen und dann die temporäre Tabelle als Bedingung zum Löschen verwenden.

Richtiges SQL-Schreiben:
 LÖSCHEN AUS Marke, WO Markenname IN (AUSWÄHLEN Markenname AUS (AUSWÄHLEN Markenname AUS Marke GRUPPE NACH Markenname HAVING COUNT(Markenname)>1) e)
 UND ID NICHT IN (WÄHLEN SIE ID AUS (WÄHLEN SIE MIN(ID) ALS ID AUS Marke GRUPPE NACH Markenname MIT ANZAHL(Markenname)>1) t)

#Bei der Abfrage nach doppelten Daten werden nur die ersten paar Elemente angezeigt, sodass keine Abfrage erforderlich ist, ob es sich um den Mindestwert handelt

Die Ergebnisse sind wie folgt:


Zusammenfassen:

Viele Dinge müssen Schritt für Schritt selbst erkundet werden. Natürlich sind auch die Vorschläge im Internet sehr wertvolle Referenzen und Ressourcen. Egal, welche Entwicklung wir durchführen, wir müssen ihre Funktionsprinzipien verstehen, um sie besser beherrschen zu können.

Nun, das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. 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:
  • Suchen Sie nach doppelten Datensätzen in der MySQL-Tabelle
  • MySQL SQL-Anweisung zum Suchen doppelter Daten basierend auf einem oder mehreren Feldern
  • Detaillierte Erklärung, wie man doppelte Daten in MySQL findet und löscht und nur ein Beispiel behält
  • So fragen Sie doppelte Daten in einer MySQL-Tabelle ab
  • Zusammenfassung der Methoden zum Löschen doppelter Daten in der MySQL-Datenbank
  • Sehr umfassender MySQL-Code zur Handhabung doppelter Daten
  • Zusammenfassung der Methoden zum Löschen doppelter Datensätze in der MySQL-Datenbank [Empfohlen]
  • Teilen Sie die Methode zum Ignorieren doppelter Daten beim Einfügen von Daten in MySQL
  • MySQL verwendet UNIQUE, um das Einfügen nicht doppelter Daten zu implementieren
  • Ein praktischer Bericht über die Prüfung und Bearbeitung doppelter MySQL-Datensätze vor Ort

<<:  Implementierung der React-Sternebewertungskomponente

>>:  Linux-Sudo-Sicherheitslücke kann zu unberechtigtem privilegiertem Zugriff führen

Artikel empfehlen

Praktischer grundlegender Beispielcode für den Linux-Befehl sed

Der Linux-Stream-Editor ist eine nützliche Möglic...

Zusammenfassung neuer Anwendungsbeispiele für Calculated in Vue3

Die Verwendung von „Computed“ in vue3. Da vue3 mi...

Super detaillierte Schritte zur Installation von Zabbix3.0 auf Centos7

Vorwort Vor Kurzem wurde ein Teil der Geschäftstä...

So kapseln Sie Abfragekomponenten basierend auf Element-UI Schritt für Schritt

Inhaltsverzeichnis Funktion Grundlegende Abfragef...

Eine kurze Diskussion über den CSS-Kaskadierungsmechanismus

Warum hat CSS einen Kaskadierungsmechanismus? Da ...

Beispiel für die Verwendung einer Keep-Alive-Komponente in Vue

Problembeschreibung (was ist Keep-Alive) Keep-Ali...

So starten Sie mehrere MySQL-Instanzen in CentOS 7.0 (mysql-5.7.21)

Konfigurationsanweisungen Linux-System: CentOS-7....

HTML css js implementiert Tab-Seite Beispielcode

Code kopieren Der Code lautet wie folgt: <html...

Detailliertes Tutorial zur Installation von Nginx auf CentOS8 (Bild und Text)

Nginx, ausgesprochen „Engine x“, ist ein Open Sou...

CSS3-Eigenschaft line-clamp steuert die Verwendung von Textzeilen

Beschreibung: Begrenzen Sie die Anzahl der Textze...

MySQL count: ausführliche Erklärung und Funktionsbeispielcode

Detaillierte Erklärung der MySQL-Anzahl Die Funkt...

Übersicht über die Definition der HTC-Komponenten nach IE5.0

Vor der Veröffentlichung von Microsoft IE 5.0 best...