LIMIT के साथ MySQL DELETE स्टेटमेंट के लिए सिंटेक्स को सही करना
DELETE स्टेटमेंट का उपयोग करके MySQL तालिका से पंक्तियों की एक श्रृंखला को हटाने का प्रयास करते समय एक LIMIT क्लॉज, यदि सिंटैक्स गलत है तो आपको त्रुटि का सामना करना पड़ सकता है। यह त्रुटि आमतौर पर इंगित करती है कि सीमा निर्दिष्ट करने के लिए उपयोग किए गए सिंटैक्स में कोई समस्या है।
प्रदान की गई क्वेरी में समस्या यह है कि आप DELETE कथन के LIMIT क्लॉज में ऑफसेट निर्दिष्ट नहीं कर सकते हैं। DELETE स्टेटमेंट में LIMIT क्लॉज का उपयोग करने का सिंटैक्स LIMIT
इस समस्या को हल करने के लिए, आपको हटाई जाने वाली पंक्तियों को निर्दिष्ट करने के लिए अपनी क्वेरी को फिर से लिखना होगा ज्यादा ठीक। ऐसा करने का एक तरीका IN क्लॉज़ का उपयोग करके उन पंक्तियों की आईडी का चयन करना है जिन्हें आप हटाना चाहते हैं और फिर DELETE कथन में पंक्तियों को फ़िल्टर करने के लिए उन आईडी का उपयोग करें।
यहां एक उदाहरण दिया गया है कि आप कैसे फिर से लिख सकते हैं आपकी क्वेरी:
DELETE FROM `chat_messages`
WHERE `id` IN (
SELECT `id` FROM (
SELECT `id` FROM `chat_messages`
ORDER BY `timestamp` DESC
LIMIT 20, 50
) AS `x`
)
इस क्वेरी में, हम पहले उन पंक्तियों की आईडी का चयन करने के लिए एक सबक्वेरी का उपयोग करते हैं जिन्हें हम हटाना चाहते हैं। फिर, हम उन आईडी के आधार पर पंक्तियों को फ़िल्टर करने के लिए मुख्य DELETE कथन में IN क्लॉज का उपयोग करते हैं, जिसके परिणामस्वरूप पंक्तियों की वांछित सीमा हट जाती है।
यह ध्यान रखना महत्वपूर्ण है कि आपको इसमें समायोजन करने की आवश्यकता हो सकती है आपकी तालिका की विशिष्ट संरचना और वांछित व्यवहार पर आधारित क्वेरी।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3