Googling, jawaban yang populer tampaknya adalah "matikan saja mode aman" :
SET SQL_SAFE_UPDATES = 0;
DELETE FROM instructor WHERE salary BETWEEN 13000 AND 15000;
SET SQL_SAFE_UPDATES = 1;
Jika boleh jujur, saya tidak bisa mengatakan bahwa saya pernah membuat kebiasaan berlari dalam mode aman. Namun, saya tidak sepenuhnya nyaman dengan jawaban ini karena hanya mengasumsikan Anda harus mengubah konfigurasi database Anda setiap kali Anda mengalami masalah.
Jadi, kueri kedua Anda mendekati sasaran, tetapi menghadapi masalah lain:MySQL menerapkan beberapa batasan pada subkueri, dan salah satunya adalah Anda tidak dapat mengubah tabel saat memilih darinya dalam subkueri.
Mengutip dari manual MySQL, Pembatasan Subquery :
Bagian terakhir itu adalah jawaban Anda. Pilih ID target di tabel sementara, lalu hapus dengan merujuk ID di tabel itu:
DELETE FROM instructor WHERE id IN (
SELECT temp.id FROM (
SELECT id FROM instructor WHERE salary BETWEEN 13000 AND 15000
) AS temp
);