1. परिचय
BETWEEN ऑपरेटर MySQL में एक सुविधाजनक फीचर है जो आपको एक सरल क्वेरी का उपयोग करके विशिष्ट तिथि सीमा के भीतर डेटा प्राप्त करने की अनुमति देता है। उदाहरण के लिए, यह मासिक बिक्री डेटा प्राप्त करने या उन उपयोगकर्ताओं की खोज करने में उपयोगी है जिनकी पंजीकरण तिथियां किसी विशेष अवधि में आती हैं।
हालांकि, BETWEEN का उपयोग करते समय आपको DATE और DATETIME जैसे डेटा प्रकारों के संभालने के तरीके, साथ ही संभावित प्रदर्शन समस्याओं पर ध्यान देना चाहिए। इस लेख में, हम बुनियादी उपयोग से लेकर उन्नत तकनीकों तक सब कुछ विस्तार से समझाएंगे।
2. MySQL BETWEEN ऑपरेटर के मूलभूत सिद्धांत
2.1 BETWEEN की बुनियादी सिंटैक्स
BETWEEN ऑपरेटर का उपयोग निर्दिष्ट सीमा के भीतर मानों को प्राप्त करने के लिए किया जाता है। इसकी बुनियादी सिंटैक्स इस प्रकार है:
SELECT * FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-01-31';
यह क्वेरी उन डेटा को प्राप्त करती है जहाँ order_date 1 जनवरी, 2024 से 31 जनवरी, 2024 तक है। एक महत्वपूर्ण बिंदु यह है कि BETWEEN शुरुआती तिथि और समाप्ति तिथि दोनों को शामिल करता है।
2.2 BETWEEN बनाम तुलना ऑपरेटर (>= AND <=)
इसी परिणाम को प्राप्त करने के लिए, आप >= और <= जैसे तुलना ऑपरेटरों को भी संयोजित कर सकते हैं।
SELECT * FROM orders
WHERE order_date >= '2024-01-01' AND order_date <= '2024-01-31';
BETWEEN के लाभ:
- उच्च पठनीयता के साथ सरल सिंटैक्स
>= AND <= के लाभ:
- रेंज शर्तों पर अधिक सटीक नियंत्रण की अनुमति देता है (जैसे, विशिष्ट समय को बाहर रखना)
उदाहरण के लिए, जब DATETIME कॉलम पर BETWEEN का उपयोग किया जाता है, तो समय जानकारी का समावेश अनपेक्षित डेटा को प्राप्त कर सकता है। हम इसे अगले भाग में विस्तार से समझाएंगे।
3. BETWEEN का उपयोग करते समय महत्वपूर्ण विचार
3.1 समय जानकारी शामिल करने वाले कॉलम को संभालना
DATETIME कॉलम पर BETWEEN का उपयोग करने से अप्रत्याशित परिणाम मिल सकते हैं।
SELECT * FROM users
WHERE created_at BETWEEN '2024-01-01' AND '2024-01-31';
इस क्वेरी में केवल 2024-01-31 00:00:00 तक का डेटा प्राप्त होता है, जिसका अर्थ है कि 31 जनवरी को मध्यरात्रि के बाद बनाए गए रिकॉर्ड बाहर रखे जाते हैं।
3.2 तिथि रेंज निर्दिष्ट करने का सही तरीका
इस समस्या को हल करने के लिए, एक प्रभावी तरीका यह है कि समाप्ति तिथि को अगले दिन से कम सेट किया जाए।
SELECT * FROM users
WHERE created_at >= '2024-01-01' AND created_at < '2024-02-01';
इस प्रकार >= और < का उपयोग करके, आप 31 जनवरी के पूरे दिन के सभी रिकॉर्ड विश्वसनीय रूप से प्राप्त कर सकते हैं।

4. BETWEEN और प्रदर्शन अनुकूलन
4.1 इंडेक्स और BETWEEN के बीच संबंध
जब उपयुक्त इंडेक्स कॉन्फ़िगर किए जाते हैं, तो BETWEEN ऑपरेटर कुशलता से कार्य करता है। हालांकि, यदि आप DATE() फ़ंक्शन का उपयोग करते हैं, तो इंडेक्स उपयोग नहीं हो सकता, इसलिए सावधानी आवश्यक है।
-- Index will not be used (not recommended)
SELECT * FROM users
WHERE DATE(created_at) BETWEEN '2024-01-01' AND '2024-01-31';
सिफ़ारिश किया गया क्वेरी:
SELECT * FROM users
WHERE created_at >= '2024-01-01' AND created_at < '2024-02-01';
4.2 EXPLAIN का उपयोग करके क्वेरी अनुकूलन
प्रदर्शन की पुष्टि करने के लिए, EXPLAIN कमांड का उपयोग करना सहायक होता है।
EXPLAIN SELECT * FROM users WHERE created_at BETWEEN '2024-01-01' AND '2024-01-31';
यह आपको उपयोग किए गए इंडेक्स और निष्पादन योजना की जाँच करने की अनुमति देता है।
5. सामान्य गलतियाँ और उन्हें कैसे ठीक करें
5.1 BETWEEN के साथ अनपेक्षित रेंज प्राप्त करना
BETWEEN का उपयोग करने पर भी, यदि समय जानकारी पर विचार नहीं किया जाता है तो अनपेक्षित डेटा शामिल या बाहर हो सकता है। सर्वोत्तम अभ्यास के रूप में, >= और < को संयोजित करना अनुशंसित है।
5.2 ऐसे क्वेरी जो इंडेक्स को निष्क्रिय कर देते हैं
DATE() या CAST() जैसे फ़ंक्शन का उपयोग करने वाली शर्तें इंडेक्स उपयोग को निष्क्रिय कर सकती हैं। जहाँ संभव हो, क्वेरी को सीधे मानों की तुलना करने के लिए पुनर्लेखन करना सबसे अच्छा है।
6. अक्सर पूछे जाने वाले प्रश्न (FAQ)
Q1: क्या BETWEEN शुरूआती और समाप्ति तिथियों दोनों को शामिल करता है?
→ हाँ, BETWEEN निर्दिष्ट रेंज की दोनों सीमाओं को शामिल करता है।
Q2: क्या मुझे BETWEEN या >= AND <= का उपयोग करना चाहिए?
→ सरल रेंज शर्तों के लिए BETWEEN का उपयोग करें। यदि आपको समय जानकारी को ध्यान में रखना है, तो >= AND < की सिफारिश की जाती है।
Q3: क्या BETWEEN का उपयोग करने से क्वेरी धीमी हो सकती है?
→ यदि आप DATE() या CAST() जैसी फ़ंक्शन का उपयोग करते हैं, तो इंडेक्स उपयोग नहीं हो सकते। प्रत्यक्ष तुलना की सिफारिश की जाती है।
7. वास्तविक‑विश्व उपयोग के लिए व्यावहारिक नमूना क्वेरीज़
7.1 किसी विशिष्ट महीने के डेटा को प्राप्त करें
WHERE created_at BETWEEN '2024-02-01' AND '2024-02-28';
7.2 आज के डेटा को प्राप्त करें
WHERE created_at BETWEEN CURDATE() AND CURDATE() + INTERVAL 1 DAY;
7.3 पिछले 30 दिनों के डेटा को प्राप्त करें
WHERE created_at BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE();
8. सारांश
BETWEENऑपरेटर तारीख रेंज की सरल निर्दिष्टि की अनुमति देता है , लेकिनDATETIMEप्रकारों को संभालते समय अतिरिक्त सावधानी आवश्यक है।BETWEENशुरू और अंत दोनों तिथियों को शामिल करता है , इसलिए सही रेंज परिभाषा आवश्यक है।- प्रदर्शन अनुकूलन के लिए इंडेक्स का उपयोग महत्वपूर्ण है , और
DATE()फ़ंक्शन का उपयोग करने से बचना चाहिए. >= AND <का उपयोग अधिक विश्वसनीय रेंज निर्दिष्टि को सक्षम करता है।
यह MySQL में BETWEEN ऑपरेटर के उपयोग के प्रमुख बिंदुओं की हमारी व्याख्या समाप्त करता है। हमें आशा है कि यह आपको वास्तविक‑विश्व विकास में मदद करेगा!


