首頁 > 資料庫 > mysql教程 > 如何使用連接而不是存在或不在中刪除MySQL中的孤兒行?

如何使用連接而不是存在或不在中刪除MySQL中的孤兒行?

Mary-Kate Olsen
發布: 2025-01-24 22:27:10
原創
945 人瀏覽過

How to Delete Orphan Rows in MySQL Using JOINs, NOT EXISTS, or NOT IN?

有效地刪除mysql中的孤兒記錄:三種經過驗證的方法

>

本指南展示了三種有效的技術,用於刪除MySQL中的孤兒行 - 資料庫條目,在基於共享ID的相關表中缺少相應的記錄。

方法1:利用左JOIN和為null>

這種方法利用A

根據特定ID欄位組合兩個表格中的資料。 然後,在加入表ID列中透過ALEFT JOIN值識別的孤兒行被定為刪除。 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>
登入後複製
方法2:不存在

> 此方法採用帶有

的子查詢來檢查相關表中的匹配記錄。缺少匹配的行被標記為刪除。

NOT EXISTS

<code class="language-sql">DELETE FROM BLOB
WHERE NOT EXISTS (SELECT NULL
FROM FILES f
WHERE f.id = fileid);</code>
登入後複製
方法3:不利用

> 這種簡單的方法使用

直接比較ID。 識別並刪除了相關表中缺少ID的行。

> NOT IN

<code class="language-sql">DELETE FROM BLOB
WHERE fileid NOT IN (SELECT f.id
FROM FILES f);</code>
登入後複製
重要的考量:

>始終執行交易中的語句,以確保資料完整性。 在發生錯誤或意外後果的情況下,這允許回滾。 在>和

(或

)之後之前使用DELETESTART TRANSACTION>

以上是如何使用連接而不是存在或不在中刪除MySQL中的孤兒行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板