別のテーブルに対応する ID がない MySQL テーブルのエントリを削除するには、次の方法に従います:
BLOB b から b を削除
ファイルを左結合 f ON f.id = b.fileid
f.id が NULL の場所
このクエリは LEFT JOIN を使用して、「BLOB」テーブルと「FILES」テーブルの間の行を照合します。 「FILES」の対応する「id」列が NULL (孤立エントリの存在を示す) である「BLOB」の行を削除します。
BLOB から削除
存在しない場合(NULL を選択
ファイルから f
WHERE f.id = ファイル ID)
このクエリはサブクエリを使用して、「BLOB」の各行に「FILES」に一致する行があるかどうかを確認します。一致するものがない場合、外部クエリは「BLOB」から行を削除します。
BLOB から削除
WHERE fileid NOT IN (SELECT f.id
ファイルから f)
このクエリは、NOT IN 演算子を使用して、"fileid" 値が "FILES" テーブルに存在しない "BLOB" テーブル内の行を識別し、孤立したエントリを効果的に削除します。
DELETE 操作を実行するとき、データベース エンジンがトランザクションをサポートしている場合 (例: MyISAM ではない場合)、トランザクションの使用を検討してください。これにより、エラーが発生した場合に変更をロールバックできます。
以上がID の不一致に基づいて MySQL の孤立した行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。