首页 >数据库 >mysql教程 >如何根据不匹配的ID删除MySQL中的孤立行?

如何根据不匹配的ID删除MySQL中的孤立行?

Linda Hamilton
Linda Hamilton原创
2025-01-24 22:31:13920浏览

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