Търсейки в гугъл, популярният отговор изглежда е "просто изключете безопасен режим" :
SET SQL_SAFE_UPDATES = 0;
DELETE FROM instructor WHERE salary BETWEEN 13000 AND 15000;
SET SQL_SAFE_UPDATES = 1;
Ако съм честен, не мога да кажа, че някога съм си имал навик да тичам в безопасен режим. Все пак не съм напълно удобен с този отговор, тъй като той просто предполага, че трябва да промените конфигурацията на базата си всеки път, когато срещнете проблем.
И така, втората ви заявка е по-близо до знака, но се сблъсква с друг проблем:MySQL прилага няколко ограничения към подзаявките и едно от тях е, че не можете да променяте таблица, докато избирате от нея в подзаявка.
Цитат от ръководството за MySQL, Ограничения за подзаявки :
Това последното нещо е вашият отговор. Изберете целеви идентификатори във временна таблица, след което изтрийте чрез препратка към идентификаторите в тази таблица:
DELETE FROM instructor WHERE id IN (
SELECT temp.id FROM (
SELECT id FROM instructor WHERE salary BETWEEN 13000 AND 15000
) AS temp
);