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

Anfänger verstehen das MySQL-Deadlock-Problem anhand des Quellcodes

Nach vielen schwierigen Einzelschritt-Debuggings ...

JavaScript-Closures erklärt

Inhaltsverzeichnis 1. Was ist ein Abschluss? 2. D...

So verschieben Sie den Datenspeicherort von mysql5.7.19 in Centos7

Szenario: Mit zunehmender Datenmenge ist die Fest...

CentOS 7 Installations- und Konfigurations-Tutorial unter VMware10

Während Ubuntu heute das beliebteste Linux-Betrie...

Lösen Sie das Problem „Rand: oberer Kollaps“ in CCS

Die HTML-Struktur ist wie folgt: Die CCS-Struktur...

Informationen zum CSS-Floating und zum Aufheben des Floatings

Definition von Float Setzt das Element aus dem no...

Detailliertes Beispiel für MySQL ähnlich dem Schreiben von Oracle Rownum

Rownum ist eine einzigartige Schreibmethode in Or...

Wartungsmethode für den Innodb-Systemtabellenbereich

Umweltbeschreibung: Es gibt eine laufende MySQL-U...

SQL-Implementierung von LeetCode (181. Angestellte verdienen mehr als Manager)

[LeetCode] 181.Mitarbeiter verdienen mehr als ihr...