Heim  >  Artikel  >  Datenbank  >  So löschen Sie doppelte Daten in MySQL

So löschen Sie doppelte Daten in MySQL

(*-*)浩
(*-*)浩Original
2019-05-07 16:22:5212662Durchsuche

Die Duplikatprüfung ist ein Bedarf, auf den wir bei unserer Arbeit häufig stoßen. Der folgende Artikel stellt Ihnen hauptsächlich die relevanten Informationen zum Abfragen doppelter Daten vor (Löschen doppelter Daten und Beibehalten der Daten mit der kleinsten ID). Artikel Der Beispielcode wird sehr detailliert vorgestellt und hat einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden.

Empfohlener Kurs: MySQL-Tutorial.

So löschen Sie doppelte Daten in MySQL

Vor kurzem arbeite ich an einer Batch-Datenimportfunktion in die MySQL-Datenbank. Aus dem Batch-Import können wir erkennen, dass solche Daten vor dem Einfügen nicht wiederholt beurteilt werden Daher kann erst nach dem Import aller Daten eine Anweisung zum Löschen ausgeführt werden, um die Eindeutigkeit der Daten sicherzustellen.

Weiter unten gibt es nicht viel zu sagen, werfen wir einen Blick auf die ausführliche Einführung

Die Tabellenstruktur ist wie folgt:

Tabelle Name: Marke

So löschen Sie doppelte Daten in MySQL

Betrieb

Was sind die wiederholten Datenabfragen mithilfe von SQL-Anweisungen:


SELECT * from brand WHERE brandName IN(
select brandName from brand GROUP BY brandName HAVING COUNT(brandName)>1 #条件是数量大于1的重复数据
)

Verwenden Sie SQL, um überflüssige doppelte Daten zu löschen und das eindeutige Datenelement mit der kleinsten ID beizubehalten:

Hinweis:

Falsch SQL: DELETE FROM brand WHERE brandName IN (select brandName from brand GROUP BY brandName HAVING COUNT(brandName)>1)
AND Id NOT IN (select MIN(Id) from brand GROUP BY brandName HAVING COUNT(brandName)> 1)

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

Die Der Grund ist: Die direkt untersuchten Daten können nicht als Bedingung für das Löschen von Daten verwendet werden. Wir sollten zunächst eine temporäre Tabelle für die erkannten Daten erstellen und dann die temporäre Tabelle als Bedingung für die Löschfunktion verwenden

正确SQL写法:
 DELETE FROM brand WHERE brandName IN 
 (SELECT brandName FROM (SELECT brandName FROM brand GROUP BY brandName HAVING COUNT(brandName)>1) e)
 AND Id NOT IN (SELECT Id FROM (SELECT MIN(Id) AS Id FROM brand GROUP BY brandName HAVING COUNT(brandName)>1) t)
#查询显示重复的数据都是显示最前面的几条,因此不需要查询是否最小值

Die Ergebnisse sind wie folgt:

So löschen Sie doppelte Daten in MySQL

Zusammenfassung:

Viele Dinge müssen Sie können es selbst tun. Es wird Schritt für Schritt erforscht. Natürlich sind die Vorschläge im Internet auch sehr wertvolle Referenzen und Ressourcen. Unabhängig davon, welche Entwicklung wir durchführen, müssen wir das Funktionsprinzip verstehen, um es besser beherrschen zu können.


Das obige ist der detaillierte Inhalt vonSo löschen Sie doppelte Daten in MySQL. 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