Mysql löscht doppelte Daten, um die kleinste ID-Lösung beizubehalten

Mysql löscht doppelte Daten, um die kleinste ID-Lösung beizubehalten

Suchen Sie online nach doppelten Daten und behalten Sie die Daten mit der kleinsten ID. Die Methode ist wie folgt:

LÖSCHEN
AUS
  Menschen
WO
  Personenname IN (
    WÄHLEN
      Personenname
    AUS
      Menschen
    GRUPPELN NACH
      Personenname
    HABEN
      Anzahl(Personenname) > 1
  )
UND peopleId NICHT IN (
  WÄHLEN
    min(Personen-ID)
  AUS
    Menschen
  GRUPPELN NACH
    Personenname
  HABEN
    Anzahl(Personenname) > 1
)

Wenn ich es selbst benutze, wird eine Fehlermeldung angezeigt:

delete from tb where id in (SELECT max(id) from tb GROUP BY user HAVING count(user)>1)

[Err] 1093 - You can't specify target table 'XXX' for update in FROM clause

Die Ursache ist noch nicht bekannt.

Suchen Sie dann nach einer Möglichkeit, den Vorgang zu verteilen. Filtern Sie zunächst die Daten mit doppelten Benutzern heraus und verwenden Sie dann max(), um die größere Zeile auszuwählen:

SELECT max(id) aus tb GROUP BY Benutzer HAVING count(user)>1

Löschen Sie dann die redundanten Daten nacheinander entsprechend der erhaltenen max(id)

Löschen aus TB mit ID=xx

Das ist eine dumme Methode. Lassen Sie uns das Problem vorübergehend lösen.

Zusammenfassen

Das Obige ist die Lösung für MySQL, um doppelte Daten zu löschen und die kleinste vom Editor eingegebene ID beizubehalten. Ich hoffe, es wird allen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten!

Das könnte Sie auch interessieren:
  • Beispiel und Analyse zum Löschen von MySQL-Datentabellen
  • MySQL-Abfrage doppelter Daten (löschen Sie doppelte Daten und behalten Sie die Daten mit der kleinsten ID als einzige Daten)
  • Detaillierte Erklärung, wie man doppelte Daten in MySQL findet und löscht und nur ein Beispiel behält
  • Mysql implementiert die regelmäßige Bereinigung alter Daten in einer Tabelle und die Beibehaltung mehrerer Datenstücke (empfohlen)

<<:  So erhalten Sie den tatsächlichen Pfad des aktuellen Skripts in Linux

>>:  Detaillierte Schritte zum Erstellen, Ausführen, Veröffentlichen und erstmaligen Abrufen eines Docker-Images

Artikel empfehlen

Navicat kann keine Funktionslösungsfreigabe erstellen

Als ich zum ersten Mal eine MySQL-FUNKTION schrie...

React verwendet Emotionen zum Schreiben von CSS-Code

Inhaltsverzeichnis Einführung: Installation von E...

Kann CSS auf diese Weise verwendet werden? Die Kunst wunderlicher Farbverläufe

Im vorherigen Artikel – Der Charme einer Zeile CS...

Verwenden Sie HTML und CSS, um Ihren eigenen warmen Mann „Dabai“ zu erstellen.

Das Endergebnis sieht so aus, ist es nicht süß … ...

Detaillierte Erklärung der MySQL 8.0.18-Befehle

Öffnen Sie den gerade entpackten Ordner C:\web\my...

SQL-Methode zum Berechnen der Zeitstempeldifferenz

SQL-Methode zum Berechnen der Zeitstempeldifferen...

Der Unterschied zwischen distinct und group by in MySQL

Einfach ausgedrückt wird distinct zum Entfernen v...

Schritte zum Erstellen eines Vite-Projekts

Inhaltsverzeichnis Vorwort Was macht Yarn Create?...

Fallstudie zum Zusammenführen von JavaScript-Arrays

Methode 1: var a = [1,2,3]; var b=[4,5] a = a.con...

W3C Tutorial (5): W3C XML Aktivitäten

XML dient der Beschreibung, Speicherung, Übertrag...