Mysql, einige komplexe SQL-Anweisungen (Abfragen und Löschen doppelter Zeilen)

Mysql, einige komplexe SQL-Anweisungen (Abfragen und Löschen doppelter Zeilen)

1. Suchen Sie nach doppelten Zeilen

Wählen Sie * aus Blog-Benutzerrelation ein WHERE (eine.Konto-Instanz-ID, eine.Follow-Konto-Instanz-ID) 
IN (SELECT Konto-Instanz-ID, Follow-Konto-Instanz-ID FROM Blog-Benutzer-Relation GROUP BY Konto-Instanz-ID, Follow-Konto-Instanz-ID HAVING
 ANZAHL(*) > 1)

2. Löschen Sie doppelte Zeilen (behalten Sie eine)

PS: Aufgrund der Löschfunktion von MySQL gilt: Wenn die Where-Bedingung der gelöschten Tabelle „in“ enthält und diese Tabelle auch in „in“ vorhanden ist, kann sie nicht gelöscht werden.

/*Eine temporäre Tabelle erstellen*/
Tabelle erstellen blog_user_relation_temp AS
(
 SELECT * FROM blog_user_relation a WHERE 
 (eine.Konto-Instanz-ID,eine.Follow-Konto-Instanz-ID) 
 IN (SELECT account_instance_id,follow_account_instance_id FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING COUNT(*) > 1)
 UND 
 relation_id 
 NICHT IN (SELECT MIN(relation_id) FROM blog_user_relation GROUP BY account_instance_id, follow_account_instance_id HAVING COUNT(*)>1));

/*Daten löschen*/
LÖSCHEN AUS `blog_user_relation`, WO relation_id IN (WÄHLEN relation_id AUS blog_user_relation_temp);

/*Temporäre Tabelle löschen*/
DROP TABLE blog_user_relation_temp;

Das könnte Sie auch interessieren:
  • Verwenden Sie SQL-Batch-Ersetzungsanweisungen, um Feldinhalte zu ändern, hinzuzufügen und zu löschen
  • SQL-Anweisung zum Löschen doppelter Datensätze und Behalten nur eines
  • Must-Know-SQL-Anweisungen (IV) Daten löschen und aktualisieren
  • Wichtige SQL-Anweisungen (Teil 2) Tabelle erstellen, Tabellenstruktur ändern, Tabelle löschen
  • Beispielcode zum Erstellen und Löschen von Einschränkungen mithilfe von SQL-Anweisungen
  • Oracle verwendet SQL-Anweisungen zum Hinzufügen von Feldern (SQL-Anweisungen zum Löschen von Feldern).
  • SQL-Anweisung zum Batch-Löschen der angegebenen Präfixtabelle in MySQL
  • So löschen und fügen Sie Fremdschlüssel und Primärschlüssel mit SQL-Anweisungen hinzu
  • Vergleich der MySQL Delete- und Truncate-Anweisungen
  • Verstehen Sie einfach die Unterschiede in den Prinzipien gängiger SQL-Delete-Anweisungen

<<:  Implementierung eines Puzzlespiels mit js

>>:  Beispielanalyse der Listen-Direktive in Nginx

Artikel empfehlen

Deaktivieren der AutoVervollständigen-Funktion im Eingabefeld

Jetzt können wir ein Eingabeattribut namens „Autov...

vue + ts realisiert den Effekt des Ziehens von Elementen mit der Maus

In diesem Artikelbeispiel wird der spezifische Co...

Meta-Tags einfach erklärt

Der META-Tag, umgangssprachlich auch als Tag beze...

Detaillierte Erklärung der CSS-Float-Eigenschaft

1. Was ist Floating? Floaten bedeutet, wie der Na...

Detaillierte Erklärung redundanter und doppelter Indizes in MySQL

MySQL ermöglicht das Erstellen mehrerer Indizes f...

JavaScript zum Erreichen eines einfachen Bildwechsels

In diesem Artikel wird der spezifische Code für J...

So verwenden Sie Umgebungsvariablen in der Nginx-Konfigurationsdatei

Vorwort Nginx ist ein auf Leistung ausgelegter HT...

Lösung für den Fehler beim Aufruf von Yum im Docker-Container

Beim Ausführen von yum im Dockerfile oder im Cont...

Mysql setzt Boolesche Typoperationen

Mysql legt den Booleschen Typ fest 1. Tinyint-Typ...

Detaillierte Erklärung zur Verwendung des Linux-Befehls Traceroute

Mithilfe von Traceroute können wir den Pfad ermit...