Heim > Datenbank > MySQL-Tutorial > Wie lösche ich verwaiste Zeilen in MySQL basierend auf nicht übereinstimmenden IDs?

Wie lösche ich verwaiste Zeilen in MySQL basierend auf nicht übereinstimmenden IDs?

Linda Hamilton
Freigeben: 2025-01-24 22:31:13
Original
914 Leute haben es durchsucht

How to Delete Orphaned Rows in MySQL Based on Mismatched IDs?

MySQL-Zeilen basierend auf ID-Nichtübereinstimmung löschen

Um Einträge in einer MySQL-Tabelle zu löschen, denen entsprechende IDs in einer anderen Tabelle fehlen, befolgen Sie diese Methode:

Verwenden Sie LEFT JOIN/IS NULL

b AUS BLOB b LÖSCHEN
LEFT JOIN FILES f ON f.id = b.fileid
WO f.id NULL IST

Diese Abfrage verwendet LEFT JOIN, um Zeilen zwischen den Tabellen „BLOB“ und „FILES“ abzugleichen. Es löscht Zeilen in „BLOB“, deren entsprechende „id“-Spalte in „FILES“ NULL ist, was auf das Vorhandensein verwaister Einträge hinweist.

VERWENDUNG NICHT EXISTIERT

VOM BLOB LÖSCHEN
WHERE NOT EXISTS(SELECT NULL
AUS DATEIEN f
WO f.id = fileid)

Diese Abfrage verwendet eine Unterabfrage, um zu prüfen, ob jede Zeile von „BLOB“ eine passende Zeile in „FILES“ hat. Wenn es keine Übereinstimmung gibt, entfernt die äußere Abfrage die Zeile aus „BLOB“.

Verwenden Sie NOT IN

VOM BLOB LÖSCHEN
WHERE fileid NOT IN (SELECT f.id
AUS DATEIEN f)

Diese Abfrage verwendet den NOT IN-Operator, um die Zeilen in der „BLOB“-Tabelle zu identifizieren, für die in der „FILES“-Tabelle kein „fileid“-Wert vorhanden ist, wodurch verwaiste Einträge effektiv entfernt werden.

Achtung

Wenn Sie DELETE-Vorgänge ausführen, sollten Sie die Verwendung von Transaktionen in Betracht ziehen, wenn Ihre Datenbank-Engine dies unterstützt (z. B. nicht MyISAM). Dadurch können Sie Änderungen rückgängig machen, wenn ein Fehler auftritt.

Das obige ist der detaillierte Inhalt vonWie lösche ich verwaiste Zeilen in MySQL basierend auf nicht übereinstimmenden IDs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage