首頁 >資料庫 >mysql教程 >如何根據不匹配的ID刪除MySQL中的孤立行?

如何根據不匹配的ID刪除MySQL中的孤立行?

Linda Hamilton
Linda Hamilton原創
2025-01-24 22:31:13918瀏覽

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

基於ID不匹配刪除MySQL行

要刪除MySQL表中在另一個表中缺少對應ID的條目,請遵循以下方法:

使用LEFT JOIN/IS NULL

DELETE b FROM BLOB b
LEFT JOIN FILES f ON f.id = b.fileid
WHERE f.id IS NULL

此查詢使用LEFT JOIN來匹配“BLOB”和“FILES”表之間的行。它刪除“BLOB”中“FILES”中對應的“id”列為NULL的行,表明存在孤立條目。

使用NOT EXISTS

DELETE FROM BLOB
WHERE NOT EXISTS(SELECT NULL
FROM FILES f
WHERE f.id = fileid)

此查詢使用子查詢來檢查“BLOB”的每一行在“FILES”中是否存在匹配的行。如果不存在匹配項,則外部查詢將從“BLOB”中刪除該行。

使用NOT IN

DELETE FROM BLOB
WHERE fileid NOT IN (SELECT f.id
FROM FILES f)

此查詢使用NOT IN運算符來識別“BLOB”表中在“FILES”表中不存在“fileid”值的那些行,從而有效地刪除孤立條目。

注意

執行DELETE操作時,如果您的數據庫引擎支持(例如,不是MyISAM),請考慮使用事務。這允許您在發生錯誤時回滾更改。

以上是如何根據不匹配的ID刪除MySQL中的孤立行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn