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

Einfaches Beispiel für die Definition und Verwendung von MySQL-Triggern

Dieser Artikel beschreibt die Definition und Verw...

Beispielanweisungen für Indizes und Einschränkungen in MySQL

Fremdschlüssel Abfrage, bei welchen Tabellen der ...

Implementierung des CSS-Quellcodes für herzförmige Ladeanimationen

Lassen Sie mich Ihnen ohne weitere Umschweife den...

So lösen Sie das Problem verschwommener kleiner Symbole auf Mobilgeräten

Vorwort Zuvor habe ich über das Problem der verti...

Manuelles Implementieren des Eingabefelds für den js-SMS-Bestätigungscode

Vorwort Dieser Artikel beschreibt eine allgemeine...

Mobile Web-Bildschirmanpassung (rem)

Vorwort Ich habe vor Kurzem meine bisherigen Noti...

Eine kurze Analyse des Zustandsverständnisses von React

Wie definiert man komplexe Komponenten (Klassenko...

Responsive Webdesign lernen (2) — Können Videos responsiv gemacht werden?

Rezension der vorherigen Folge: Gestern haben wir...

Warum wird für die Webseitenkodierung UTF-8 statt GBK oder GB2312 verwendet?

Wenn Sie die Wahl haben, sollten Sie UTF-8 verwen...

Probleme bei der Installation von MySQL und mysql.sock unter Linux

Vor kurzem traten bei der Installation von Apache...

Lösung für MySQL 8.0 kann nicht gestartet werden 3534

Der MySQL 8.0-Dienst kann nicht gestartet werden ...