Eine einfache Methode zum Zusammenführen und Entfernen doppelter MySQL-Tabellen

Eine einfache Methode zum Zusammenführen und Entfernen doppelter MySQL-Tabellen

Szenario:

Die gecrawlten Daten erzeugen eine Datentabelle mit der gleichen Struktur wie eine andere Haupttabelle, die zusammengeführt und dedupliziert werden muss

Lösung: (direktes Beispiel)

Erstellen Sie zunächst zwei Tabellen pep und pep2, wobei pep die Haupttabelle ist

Tabelle erstellen, wenn nicht vorhanden `pep/pep2`(
`id` INT UNSIGNED AUTO_INCREMENT,
`nein` VARCHAR(100) NICHT NULL,
PRIMÄRSCHLÜSSEL ( `id` )
)ENGINE=InnoDB STANDARD-CHARSET=utf8;

Fügen Sie dann zwei Daten in pep ein und fügen Sie ein Datenstück, das mit dem in pep identisch ist, in pep2 ein.

in pep(no) Werte einfügen('abc');
in pep(no) Werte einfügen('caa');

in pep2 einfügen (keine) Werte ('abc');

Pep2-Daten in Pep einfügen

in pep einfügen (nein) nein aus pep2 auswählen;

Gruppe zum Neuerstellen einer neuen temporären Tabelle tmp

Erstellen Sie die temporäre Tabelle, wählen Sie ID, Nr. aus der Pep-Gruppe nach Nr.

Hinweis: Nach dem Erstellen dieser Tabelle ist der ID-Feldtyp kein Primärschlüssel-Autoinkrement mehr

 Möglicherweise erhalten Sie auch die Fehlermeldung ```Syntaxfehler oder Zugriffsverletzung: 1055 Ausdruck Nr. 1 von SELECT 
 Liste ist nicht in der GROUP BY-Klausel und enthält nicht aggregierte 
 Spalte 'XXX.Y.ZZZZ', die nicht funktional abhängig ist von 
 Spalten in der GROUP BY-Klausel; dies ist inkompatibel mit
 sql_mode=only_full_group_by
 ```
 Lösung: Führen Sie die folgenden beiden Befehle aus:
 ```
 mysql> globalen SQL-Modus festlegen = 'STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION';
 
 mysql> Sitzung festlegen sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
 ```

Löschen Sie die pep-Tabelle und benennen Sie die tmp-Tabelle in pep um.

Tischpep fallen lassen;
Tabelle vorübergehend ändern, in „pep“ umbenennen;

Überprüfen Sie die Desc-Struktur und wählen Sie * aus Pep aus. Sie werden feststellen, dass sich der Feldtyp der ID geändert hat. Sie müssen ihn wieder auf den ursprünglichen Typ zurücksetzen.

Tabelle ändern, Pep Primärschlüssel (ID) hinzufügen;
Tabelle ändern, PEP-ID ändern, int auto_increment;

Sie können auch Join verwenden, um Duplikate zu entfernen. Um schneller zu sein, können Sie ein Feld hinzufügen (das der kombinierte MD5-Wert mehrerer Felder sein kann), einen eindeutigen Index für dieses Feld erstellen und doppelte Daten beim Einfügen von Daten in Zukunft automatisch herausfiltern.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Zusammenfassung der drei Deduplizierungsmethoden in SQL
  • Detailliertes Beispiel zur Verwendung der distinct-Methode in MySQL
  • So optimieren Sie den MySQL-Deduplizierungsvorgang maximal
  • MySQL-Deduplizierungsmethoden
  • Detaillierte Erklärung zweier Methoden zur Deduplizierung in MySQL und Beispielcode
  • SQL-Lernhinweise 5: So entfernen Sie Duplikate und weisen neu hinzugefügten Feldern Werte zu
  • Zusammenfassung der SQL-Deduplizierungsmethoden

<<:  Lösen Sie das Problem inkonsistenter Front- und Back-End-Ports von Vue

>>:  Ubuntu 18.04 erhält Root-Berechtigungen und meldet sich als Root-Benutzer an

Artikel empfehlen

Detaillierte Erläuterung des virtuellen DOM in der Vue-Quellcodeanalyse

Warum brauchen wir virtuellen Dom? Virtual DOM wu...

Beispiel einer JSON-Ausgabe im HTML-Format (Testschnittstelle)

Um die JSON-Daten in einem schönen eingerückten F...

So konvertieren Sie eine Zeichenfolge in JavaScript in eine Zahl

Inhaltsverzeichnis 1.parseInt(Zeichenfolge, Basis...

Detaillierte Erklärung der API in Vue.js, die leicht zu übersehen ist

Inhaltsverzeichnis nächstesTick Syntaxvereinfachu...

Einfache Implementierungsmethode der bidirektionalen Datenbindung im JS-Projekt

Inhaltsverzeichnis Vorwort Publish-Subscriber-Mus...

So ändern Sie das Root-Passwort von MySQL in Docker

Der erste Schritt besteht darin, einen MySQL-Cont...

Der praktische Prozess des Login-Status-Managements im vuex-Projekt

Inhaltsverzeichnis Werkzeug: Anmeldeszenario: übe...

So verwenden Sie Lottie-Animationen in React Native-Projekten

Lottie ist eine von Airbnb entwickelte Open-Sourc...

So installieren Sie Nginx in CentOS7 und konfigurieren den automatischen Start

1. Laden Sie das Installationspaket von der offiz...