要刪除MySQL表中在另一個表中缺少對應ID的條目,請遵循以下方法:
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的行,表明存在孤立條目。
DELETE FROM BLOB
WHERE NOT EXISTS(SELECT NULL
FROM FILES f
WHERE f.id = fileid)
此查詢使用子查詢來檢查“BLOB”的每一行在“FILES”中是否存在匹配的行。如果不存在匹配項,則外部查詢將從“BLOB”中刪除該行。
DELETE FROM BLOB
WHERE fileid NOT IN (SELECT f.id
FROM FILES f)
此查詢使用NOT IN運算符來識別“BLOB”表中在“FILES”表中不存在“fileid”值的那些行,從而有效地刪除孤立條目。
執行DELETE操作時,如果您的數據庫引擎支持(例如,不是MyISAM),請考慮使用事務。這允許您在發生錯誤時回滾更改。
以上是如何根據不匹配的ID刪除MySQL中的孤立行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!