MySQL SUBSTRING फ़ंक्शन: सिंटैक्स, उदाहरण और सर्वश्रेष्ठ प्रथाएँ

目次

1. SUBSTRING फ़ंक्शन क्या है?

SUBSTRING फ़ंक्शन MySQL में स्ट्रिंग के किसी भाग को निकालने के लिए एक आवश्यक उपकरण है। इस फ़ंक्शन की मदद से आप डेटाबेस से केवल आवश्यक डेटा भाग को प्राप्त कर सकते हैं। उदाहरण के लिए, यह उपयोगकर्ता के ईमेल पते से डोमेन निकालने या प्रोडक्ट कोड के किसी विशिष्ट भाग को प्राप्त करने में उपयोगी है।

1.1 बुनियादी सिंटैक्स

SUBSTRING फ़ंक्शन की बुनियादी सिंटैक्स प्रकार है:

SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
  • str : वह लक्ष्य स्ट्रिंग जिससे निकालना है।
  • pos : प्रारंभिक स्थिति (1‑आधारित इंडेक्स)।
  • len : निकालने के लिए अक्षरों की संख्या (वैकल्पिक)।

यदि pos सकारात्मक है, तो यह स्ट्रिंग की शुरुआत से गिनता है। यदि यह नकारात्मक है, तो यह अंत से गिनता है। यदि len छोड़ा जाता है, तो फ़ंक्शन निर्दिष्ट स्थिति से लेकर स्ट्रिंग के अंत तक निकालता है।

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 को छोड़ देते हैं, तो यह निर्दिष्ट स्थिति से लेकर स्ट्रिंग के अंत तक निकालता है।

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 फ़ंक्शन का उन्नत उपयोग और अनुकूलन

यहाँ SUBSTRING को अधिक कुशलता से उपयोग करने और इसके प्रदर्शन को अनुकूलित करने का तरीका दिया गया है।

5.1 प्रदर्शन अनुकूलन

बड़े डेटासेट पर SUBSTRING का उपयोग प्रदर्शन को प्रभावित कर सकता है। आवश्यक होने पर इंडेक्स बनाने और क्वेरी निष्पादन योजना की जाँच करने पर विचार करें। यदि आप बार-बार एक ही सबस्ट्रिंग निकालते हैं, तो परिणामों को कैश करना भी मदद कर सकता है।

5.2 WHERE क्लॉज में उपयोग

आप WHERE क्लॉज में SUBSTRING का उपयोग स्ट्रिंग के एक भाग के आधार पर खोजने के लिए कर सकते हैं।

SELECT * FROM products WHERE SUBSTRING(product_code, 1, 3) = 'ABC';

यह क्वेरी उन उत्पादों को पुनः प्राप्त करती है जिनका product_code ‘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 के साथ केवल आवश्यक निकालें।
  • डेटा प्रकार का ध्यान रखें : संख्यात्मक डेटा पर SUBSTRING लागू करते समय, इसे पहले स्पष्ट रूप से स्ट्रिंग में कास्ट करें।
  • इंडेक्स विचार : WHERE क्लॉज में SUBSTRING का उपयोग इंडेक्स के उपयोग को रोक सकता है, इसलिए अपनी क्वेरी प्रदर्शन की जाँच करें।

7. त्रुटि हैंडलिंग और संस्करण अंतर

आइए त्रुटि हैंडलिंग और MySQL संस्करणों में SUBSTRING व्यवहार के अंतरों को कवर करें।

7.1 त्रुटि हैंडलिंग

यदि SUBSTRING में निर्दिष्ट स्थिति स्ट्रिंग की सीमा के बाहर है, तो यह एक खाली स्ट्रिंग लौटाता है। चूँकि यह एक त्रुटि नहीं है, परिणामों की जाँच करने के लिए पहले से लॉजिक जोड़ना अनुशंसित है।

7.2 संस्करण अंतर

आपके MySQL संस्करण के आधार पर, SUBSTRING का व्यवहार भिन्न हो सकता है। उदाहरण के लिए, कुछ पुराने संस्करण मल्टीबाइट वर्णों को अलग-अलग तरीके से हैंडल करते हैं। संस्करणों के बीच संगतता की जाँच करें और आवश्यकतानुसार उपयुक्त उपाय लागू करें।