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

Wie lösche ich Orphan -Zeilen in einer Datenbanktabelle basierend auf nicht übereinstimmenden IDs?

Linda Hamilton
Freigeben: 2025-01-24 22:21:19
Original
436 Leute haben es durchsucht

How to Delete Orphan Rows in a Database Table Based on Unmatched IDs?

Verwaiste Zeilen basierend auf nicht übereinstimmenden IDs löschen

Frage:

Löschen Sie blob aus der Tabelle fileid. In der Tabelle files wurde keine passende Zeile id gefunden.

Tabellenstruktur:

<code>files表:
| id | .... |
|---|---|
| 1  | .... |
| 2  | .... |
| 7  | .... |
| 9  | .... |

blob表:
| fileid | .... |
|---|---|
| 1  | .... |
| 2  | .... |
| 3  | .... |
| 4  | .... |
| 4  | .... |
| 4  | .... |
| 9  | .... |</code>
Nach dem Login kopieren

Erwartete Ergebnisse:

Löschen Sie Zeilen mit blobs 3 und 4 in der fileid-Tabelle, da sie keine passenden files in der fileid-Tabelle haben.

Lösung:

1. Verwenden Sie LEFT JOIN/IS NULL:

<code class="language-sql">DELETE b FROM BLOB b 
  LEFT JOIN FILES f ON f.id = b.fileid 
      WHERE f.id IS NULL</code>
Nach dem Login kopieren

2. Verwenden Sie NOT EXISTS:

<code class="language-sql">DELETE FROM BLOB 
 WHERE NOT EXISTS(SELECT NULL
                    FROM FILES f
                   WHERE f.id = fileid)</code>
Nach dem Login kopieren

3. Verwenden Sie NICHT IN:

<code class="language-sql">DELETE FROM BLOB
 WHERE fileid NOT IN (SELECT f.id 
                        FROM FILES f)</code>
Nach dem Login kopieren

Warnung:

Um im Fehlerfall ein Rollback sicherzustellen, führen Sie innerhalb einer Transaktion einen DELETE-Vorgang durch.

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

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