चारों ओर घूमते हुए, लोकप्रिय उत्तर लगता है "बस सुरक्षित मोड बंद करें" :
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
);