Heim  >  Artikel  >  Backend-Entwicklung  >  MySQL implementiert das Löschen doppelter Daten

MySQL implementiert das Löschen doppelter Daten

小云云
小云云Original
2018-03-28 13:59:241952Durchsuche

In diesem Artikel erfahren Sie hauptsächlich, wie Sie doppelte Daten in MySQL löschen. Dieser Artikel erklärt es anhand von Beispielen und hofft, Ihnen dabei zu helfen.

löschen FROM `ex` WHERE phone in (SELECT c.phone
FROM `ex` as c
GROUP BY c.phone

HAVING COUNT( * ) >1) und ID nicht enthalten (wählen Sie max(b.id) aus „ex“ als b-Gruppe nach b.phone aus);

Hinweis: ex (Beispieltabellenname), basierend auf dem Telefonfeld, bestimmen, ob wiederholen. Behalten Sie wiederholt die zuletzt eingefügte ID bei (d. h. die mit der größten automatisch inkrementierten ID)

Nach der Ausführung ist das Ergebnis jedoch nicht wie erwartet:

/* SQL-Fehler ( 1093): Sie können die Zieltabelle „ex“ für die Aktualisierung nicht in der FROM-Klausel angeben */

Übersetzung: Sie können nicht zuerst bestimmte Werte in derselben Tabelle auswählen und dann aktualisieren (löschen) Diese Tabelle (in derselben Anweisung), das heißt, Sie können nicht auf der Grundlage des Werts eines bestimmten Felds ein Urteil fällen und dann den Wert eines bestimmten Felds aktualisieren.

Die Frage gilt nur für: MySQL, ohne Oracle, SQL Server usw. Weil die Unterstützung von Unteranweisungen durch MySQL nicht sehr gut ist.

Problem gelöst:


Wählen Sie zuerst das Ergebnis aus und wählen Sie es dann erneut über die Zwischentabelle aus. Das Ergebnis der Auswahl wird zu einer zwischengespeicherten Tabelle mit einem Alias, einer virtuellen Tabelle.

Wie im Bild gezeigt: Dies löst das Problem des Löschens doppelter Informationen in einer SQL-Anweisung von MySQL.

Für Ihre Bequemlichkeit:

DELETE  FROM   `ex`   WHERE  id NOT IN (  SELECT  id  FROM  (SELECT max(b.id) AS id  FROM `ex`  b  GROUP BY b.phone) b);

Verwandte Empfehlungen:

Mysql löscht doppelte Daten Behalten Sie die kleinste ID bei

SQL-Anweisung für doppelte Daten löschen

MySQL löscht doppelte Datenzeilen und speichert nur eine

Das obige ist der detaillierte Inhalt vonMySQL implementiert das Löschen doppelter Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn