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.
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
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) #查询显示重复的数据都是显示最前面的几条,因此不需要查询是否最小值
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!