.
1. SUBSTRING फ़ंक्शन क्या है?
SUBSTRING फ़ंक्शन MySQL का एक महत्वपूर्ण फ़ंक्शन है जिसका उपयोग किसी स्ट्रिंग से उप‑स्ट्रिंग निकालने के लिए किया जाता है। इस फ़ंक्शन की मदद से आप डेटाबेस में संग्रहीत डेटा में से केवल वह भाग निकाल सकते हैं जिसकी आपको आवश्यकता है। उदाहरण के लिए, यह उपयोगी होता है जब आप उपयोगकर्ता के ई‑मेल पते से डोमेन भाग निकालना चाहते हैं, या किसी प्रोडक्ट कोड के विशिष्ट सेक्शन को प्राप्त करना चाहते हैं।
1.1 बेसिक सिंटैक्स
SUBSTRING फ़ंक्शन की बेसिक सिंटैक्स इस प्रकार है:
SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
str: वह स्ट्रिंग जिससे निकालना है।pos: प्रारंभिक स्थिति (1 से शुरू होती है)।len: निकालने वाले अक्षरों की संख्या (वैकल्पिक)।
यदि pos एक सकारात्मक मान है, तो MySQL स्ट्रिंग की शुरुआत से आगे की ओर गिनता है। यदि यह नकारात्मक है, तो MySQL स्ट्रिंग के अंत से पीछे की ओर गिनता है। यदि len छोड़ा जाता है, तो MySQL निर्दिष्ट स्थिति से लेकर स्ट्रिंग के अंत तक निकालता है।
1.2 SUBSTRING फ़ंक्शन के उपयोग के केस
यह फ़ंक्शन स्ट्रिंग डेटा को फॉर्मेट करने और विशिष्ट भाग निकालने के लिए उपयोग किया जाता है, जिससे डेटाबेस में जानकारी को अधिक आसानी से खोजा और प्रोसेस किया जा सकता है।
2. SUBSTRING फ़ंक्शन का बेसिक उपयोग
बुनियादी बातों को समझने के लिए, आइए कुछ सरल उदाहरण देखें।
2.1 स्ट्रिंग का एक भाग निकालना
निम्नलिखित क्वेरी स्ट्रिंग “Hello, World!” के 3रे अक्षर से शुरू होकर 6 अक्षर निकालती है।
SELECT SUBSTRING('Hello, World!', 3, 6);
परिणाम "llo, W" है। चूँकि pos 3 है, इसलिए निकाली गई स्ट्रिंग 3रे अक्षर से शुरू होती है, और len 6 होने के कारण 6 अक्षर निकाले जाते हैं।
2.2 लंबाई पैरामीटर को छोड़ना
यदि आप len को छोड़ देते हैं, तो MySQL निर्दिष्ट स्थिति से लेकर स्ट्रिंग के अंत तक निकालता है।
SELECT SUBSTRING('Hello, World!', 8);
परिणाम "World!" है, जो 8वें अक्षर से लेकर अंत तक सब कुछ प्राप्त करता है।
2.3 नकारात्मक स्थिति का उपयोग करना
यदि आप नकारात्मक मान का उपयोग करते हैं, तो आप स्ट्रिंग के अंत से स्थिति निर्दिष्ट कर सकते हैं।
SELECT SUBSTRING('Hello, World!', -5);
यह क्वेरी "orld!" लौटाती है, यानी अंतिम 5 अक्षर निकालती है।
3. SUBSTRING फ़ंक्शन के व्यावहारिक अनुप्रयोग
SUBSTRING फ़ंक्शन वास्तविक डेटा संचालन में अक्सर उपयोग किया जाता है। यहाँ कुछ व्यावहारिक उदाहरण दिए गए हैं।
3.1 ई‑मेल पते से डोमेन निकालना
SUBSTRING को LOCATE के साथ मिलाकर आप ई‑मेल पते से डोमेन भाग निकाल सकते हैं।
SELECT email, SUBSTRING(email, LOCATE('@', email) + 1) AS domain FROM users;
यह क्वेरी “@” के बाद की स्ट्रिंग निकालती है और केवल डोमेन भाग लौटाती है।
3.2 प्रोडक्ट कोड का एक भाग निकालना
यह उदाहरण प्रोडक्ट कोड के एक विशिष्ट सेक्शन को निकालता है।
SELECT product_code, SUBSTRING(product_code, 5, 4) AS product_id FROM products;
इस क्वेरी में प्रोडक्ट कोड के 5वें अक्षर से शुरू होकर 4 अक्षर निकाले जाते हैं और उन्हें product_id नाम के नए कॉलम में दिखाया जाता है।
3.3 सबक्वेरी में उपयोग करना
इसे सबक्वेरी के साथ मिलाकर आप अधिक जटिल शर्तों के तहत डेटा निकाल सकते हैं।
SELECT id, SUBSTRING(description, 1, 10) AS short_desc FROM (SELECT * FROM products WHERE category = 'Electronics') AS sub;
यह क्वेरी उन प्रोडक्ट्स के description के पहले 10 अक्षर निकालती है जहाँ category ‘Electronics’ है।

4. अन्य स्ट्रिंग फ़ंक्शनों के साथ तुलना
SUBSTRING के समान उद्देश्यों के लिए उपयोग किए जा सकने वाले अन्य फ़ंक्शन में LEFT, RIGHT और SUBSTR शामिल हैं।
4.1 LEFT और RIGHT फ़ंक्शन
LEFT(str, len): स्ट्रिंग की शुरुआत से निर्दिष्ट संख्या में अक्षर लौटाता है।RIGHT(str, len): स्ट्रिंग के अंत से निर्दिष्ट संख्या में अक्षर लौटाता है।SELECT LEFT('Hello, World!', 5); -- "Hello" SELECT RIGHT('Hello, World!', 6); -- "World!"
जब आप स्ट्रिंग की शुरुआत या अंत से उप‑स्ट्रिंग निकालना चाहते हैं, तो ये फ़ंक्शन सुविधाजनक होते हैं।
4.2 SUBSTR फ़ंक्शन
SUBSTR SUBSTRING का उपनाम है, इसलिए इसे उसी तरह उपयोग किया जा सकता है।
SELECT SUBSTR('Hello, World!', 8); -- "World!"
यह क्वेरी "World!" लौटाती है, ठीक SUBSTRING की तरह।
5. SUBSTRING फ़ंक्शन के लिए उन्नत उपयोग और अनुकूलन
यह अनुभाग अधिक उन्नत उपयोग और अनुकूलन तकनीकों की व्याख्या करता है।
5.1 प्रदर्शन अनुकूलन
SUBSTRING को बड़े डेटासेट पर उपयोग करने से प्रदर्शन पर असर पड़ सकता है। यदि आवश्यक हो, तो इंडेक्स बनाएं और क्वेरी निष्पादन योजना की जाँच करें। साथ ही, यदि आप अक्सर वही सबस्ट्रिंग निकालते हैं, तो परिणाम को कैश करने पर विचार करें।
5.2 इसे WHERE क्लॉज़ में उपयोग करना
आप WHERE क्लॉज़ में SUBSTRING का उपयोग करके सबस्ट्रिंग शर्त के आधार पर रिकॉर्ड फ़िल्टर कर सकते हैं।
SELECT * FROM products WHERE SUBSTRING(product_code, 1, 3) = 'ABC';
यह क्वेरी उन उत्पादों को खोजती है जहाँ product_code के पहले 3 अक्षर ‘ABC’ हैं।
6. SUBSTRING फ़ंक्शन के उदाहरण और सर्वोत्तम प्रथाएँ
यहाँ SUBSTRING के उपयोग के व्यावहारिक उदाहरण और वास्तविक कार्य के लिए सर्वोत्तम प्रथाएँ दी गई हैं।
6.1 नमूना कोड
निम्नलिखित नमूना ग्राहक के पूर्ण नाम को प्रथम नाम और उपनाम में विभाजित करता है।
SELECT name, SUBSTRING(name, 1, LOCATE(' ', name) - 1) AS first_name,
SUBSTRING(name, LOCATE(' ', name) + 1) AS last_name
FROM customers;
इस क्वेरी में, प्रथम और उपनाम को स्पेस द्वारा अलग किए गए पूर्ण नाम से निकाला जाता है।
6.2 सर्वोत्तम प्रथाएँ
- केवल आवश्यक भाग निकालें : प्रदर्शन प्रभाव को कम करने के लिए सबस्ट्रिंग की लंबाई को यथासंभव छोटा रखें।
- डेटा प्रकारों पर ध्यान दें : यदि आप
SUBSTRINGको संख्यात्मक डेटा पर लागू करते हैं, तो आपको इसे स्पष्ट रूप से स्ट्रिंग में कास्ट करना पड़ सकता है। - इंडेक्स उपयोग पर विचार करें : जब
WHEREक्लॉज़ मेंSUBSTRINGका उपयोग किया जाता है, तो इंडेक्स प्रभावी रूप से उपयोग नहीं हो सकते, इसलिए क्वेरी प्रदर्शन पर सावधानीपूर्वक नज़र रखें।
7. त्रुटि संभालना और संस्करण अंतर
यह अनुभाग SUBSTRING के उपयोग के दौरान त्रुटि संभालने और MySQL संस्करणों के बीच अंतर को कवर करता है।
7.1 त्रुटि संभालना
यदि निर्दिष्ट स्थिति स्ट्रिंग की सीमा से बाहर है, तो SUBSTRING एक खाली स्ट्रिंग लौटाता है। चूँकि यह त्रुटि नहीं है, आवश्यक होने पर परिणाम को पहले से मान्य करने के लिए लॉजिक जोड़ने की सलाह दी जाती है।
7.2 संस्करण अंतर
MySQL संस्करण के आधार पर, SUBSTRING फ़ंक्शन का व्यवहार अलग हो सकता है। उदाहरण के लिए, कुछ पुराने संस्करण मल्टी-बाइट अक्षरों को अलग तरीके से संभाल सकते हैं। संस्करणों के बीच संगतता जाँचें और आवश्यक होने पर उपयुक्त उपाय लागू करें।


