グーグルで回ると、人気のある答えは「セーフモードをオフにするだけ」 :
SET SQL_SAFE_UPDATES = 0;
DELETE FROM instructor WHERE salary BETWEEN 13000 AND 15000;
SET SQL_SAFE_UPDATES = 1;
正直なところ、セーフモードで走る習慣をつけたことはありません。それでも、問題が発生するたびにデータベース構成を変更する必要があると想定しているため、この回答に完全に満足しているわけではありません。
したがって、2番目のクエリはマークに近づきますが、別の問題が発生します。MySQLはサブクエリにいくつかの制限を適用し、そのうちの1つは、サブクエリでテーブルから選択している間はテーブルを変更できないことです。
MySQLマニュアルからの引用、サブクエリの制限 :
その最後のビットがあなたの答えです。一時テーブルでターゲットIDを選択し、そのテーブルのIDを参照して削除します。
DELETE FROM instructor WHERE id IN (
SELECT temp.id FROM (
SELECT id FROM instructor WHERE salary BETWEEN 13000 AND 15000
) AS temp
);