MySQL
では、サブクエリをサポートしていません(バージョン
4.1 より前)。また、DELETE
ステートメントでの 2
つ以上のテーブルの使用もサポートしていません(バージョン
4.0 より前)。そのため、2
つの関連テーブルからレコードを削除するには、以下の方法を使用してください。
メインテーブルで WHERE
条件に基づいて、レコードを
SELECT
する。
同じ条件に基づいて、メインテーブルのレコードを
DELETE
する。
DELETE FROM related_table WHERE related_column IN
(selected_rows)
。
related_column
のクエリの合計文字数が
1,048,576(max_allowed_packet
のデフォルト値)を超える場合、分割して、複数回
DELETE
ステートメントを実行してください。related_column
がインデックスの場合は、100 〜 1000 の
related_column
ID
を削除するだけなので、通常
DELETE
が非常に速くなります。related_column
がインデックスでない場合、速度は
IN
節の引数の数に依存しません。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.