MySQL SUBSTRING फङ्सन: सिन्ट्याक्स, उदाहरणहरू, र उत्तम अभ्यासहरू

目次

१. SUBSTRING फङ्क्सन के हो?

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

१.१ आधारभूत वाक्यरचना

SUBSTRING फङ्क्सनको आधारभूत वाक्यरचना निम्नानुसार छ:

SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
  • str : निकाल्नका लागि लक्षित स्ट्रिङ।
  • pos : सुरुको स्थिति (१-आधारित सूचकांक)।
  • len : निकाल्नका लागि क्यारेक्टरहरूको संख्या (वैकल्पिक)।

यदि pos धनात्मक छ भने, यो स्ट्रिङको सुरुवातबाट गणना गर्दछ। यदि यो ऋणात्मक छ भने, यो अन्त्यबाट गणना गर्दछ। यदि len छोडिएको छ भने, फङ्क्सनले निर्दिष्ट स्थितिबाट स्ट्रिङको अन्त्यसम्म निकाल्दछ।

१.२ SUBSTRING फङ्क्सनका प्रयोगका क्षेत्रहरू

यो फङ्क्सन स्ट्रिङ डाटा ढाँचा गर्न वा विशिष्ट भागहरू निकाल्नका लागि प्रयोग गरिन्छ, जसले डाटाबेसहरूमा डाटा प्राप्ति र प्रक्रियालाई थप कुशल बनाउँछ।

२. SUBSTRING फङ्क्सनको आधारभूत प्रयोग

यसले कसरी काम गर्दछ भनेर बुझ्न एक सरल उदाहरण हेरौं।

२.१ स्ट्रिङको एक भाग निकाल्ने

निम्न क्वेरीले “Hello, World!” स्ट्रिङको ३औं क्यारेक्टरबाट सुरु भएर ६ क्यारेक्टरहरू निकाल्दछ।

SELECT SUBSTRING('Hello, World!', 3, 6);

परिणाम "llo, W" हो। चूँकि pos ३ छ, यो ३औं क्यारेक्टरबाट सुरु हुन्छ, र len लाई ६ मा सेट गरिएकोले, यो ६ क्यारेक्टरहरू निकाल्दछ।

२.२ लम्बाइ छोड्ने

यदि तपाईं len छोड्नुहुन्छ भने, यो निर्दिष्ट स्थितिबाट स्ट्रिङको अन्त्यसम्म निकाल्दछ।

SELECT SUBSTRING('Hello, World!', 8);

परिणाम "World!" हो, ८औं क्यारेक्टरबाट सुरु भएर अन्त्यसम्म।

२.३ ऋणात्मक स्थिति

ऋणात्मक मान प्रयोग गरेर तपाईं स्ट्रिङको अन्त्यबाट स्थिति निर्दिष्ट गर्न सक्नुहुन्छ।

SELECT SUBSTRING('Hello, World!', -5);

यो क्वेरीले अन्तिम ५ क्यारेक्टरहरू निकालेर "orld!" फर्काउँछ।

३. SUBSTRING फङ्क्सनका व्यावहारिक अनुप्रयोगहरू

SUBSTRING फङ्क्सन वास्तविक विश्वका डाटा सञ्चालनहरूमा बारम्बार प्रयोग गरिन्छ। यहाँ केही उदाहरणहरू छन्।

३.१ इमेल ठेगानाबाट डोमेन निकाल्ने

SUBSTRING लाई LOCATE सँग जोडेर, तपाईं इमेल ठेगानाबाट डोमेन भाग निकाल्न सक्नुहुन्छ।

SELECT email, SUBSTRING(email, LOCATE('@', email) + 1) AS domain FROM users;

यो क्वेरीले “@” चिन्ह पछि स्ट्रिङ प्राप्त गर्दछ, जसले तपाईंलाई डोमेन भाग मात्र दिन्छ।

३.२ उत्पादन कोडको भाग निकाल्ने

यहाँ उत्पादन कोडको एक विशिष्ट भाग निकाल्ने उदाहरण छ।

SELECT product_code, SUBSTRING(product_code, 5, 4) AS product_id FROM products;

यो क्वेरीले उत्पादन कोडको ५औं क्यारेक्टरबाट सुरु भएर ४ क्यारेक्टरहरू निकाल्दछ र यसलाई नयाँ स्तम्भ product_id को रूपमा प्रदर्शित गर्दछ।

३.३ सब्क्वेरीहरूसँग प्रयोग गर्ने

यसलाई सब्क्वेरीहरूसँग जोडेर जटिल अवस्थाहरू अन्तर्गत डाटा निकाल्न सकिन्छ।

SELECT id, SUBSTRING(description, 1, 10) AS short_desc FROM (SELECT * FROM products WHERE category = 'Electronics') AS sub;

यो क्वेरीले category ‘Electronics’ भएको उत्पादनहरूबाट description को पहिलो १० क्यारेक्टरहरू निकाल्दछ।

४. अन्य स्ट्रिङ फङ्क्सनहरूसँग तुलना

SUBSTRING सँग समान उद्देश्य भएका अन्य फङ्क्सनहरूमा LEFT, RIGHT, र SUBSTR समावेश छन्।

४.१ LEFTRIGHT फङ्क्सनहरू

  • LEFT(str, len) : स्ट्रिङको सुरुवातबाट निर्दिष्ट संख्याको क्यारेक्टरहरू प्राप्त गर्दछ।
  • RIGHT(str, len) : स्ट्रिङको अन्त्यबाट निर्दिष्ट संख्याको क्यारेक्टरहरू प्राप्त गर्दछ।
SELECT LEFT('Hello, World!', 5);  -- "Hello"
SELECT RIGHT('Hello, World!', 6); -- "World!"

यी फङ्क्सनहरू स्ट्रिङको एक विशिष्ट अन्त्यबाट भाग निकाल्न चाहनुहुन्छ जब उपयोगी हुन्छन्।

४.२ SUBSTR फङ्क्सन

SUBSTR SUBSTRING को उपनाम हो र यसलाई एकै तरिकाले प्रयोग गर्न सकिन्छ।

SELECT SUBSTR('Hello, World!', 8); -- "World!"

यो क्वेरीले SUBSTRING जस्तै "World!" फर्काउँछ।

५. SUBSTRING फङ्क्सनको उन्नत प्रयोग र अनुकूलन

यहाँ SUBSTRING लाई अधिक कुशलतापूर्वक प्रयोग गर्ने र यसको प्रदर्शनलाई अनुकूलित गर्ने तरिका छ।

५.१ प्रदर्शन अनुकूलन

ठूलो डाटासेटमा SUBSTRING प्रयोग गर्दा प्रदर्शनमा असर पर्न सक्छ। आवश्यक हुँदा सूचकांकहरू सिर्जना गर्ने र क्वेरी कार्यान्वयन योजना जाँच्ने विचार गर्नुहोस्। यदि तपाईंले बारम्बार त्यही सब्स्ट्रिङ निकाल्नुहुन्छ भने, परिणामहरू क्यासिङ गर्दा पनि सहयोग पुग्न सक्छ।

५.२ WHERE क्लजमा प्रयोग

तपाईंले स्ट्रिङको भागमा आधारित खोजी गर्न WHERE क्लजमा SUBSTRING प्रयोग गर्न सक्नुहुन्छ।

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

यो क्वेरीले product_code ‘ABC’ बाट सुरु हुने उत्पादनहरू प्राप्त गर्दछ।

६. SUBSTRING फङ्क्शनका लागि उदाहरणहरू र उत्कृष्ट अभ्यासहरू

यहाँ SUBSTRING प्रयोग गर्नका लागि व्यावहारिक उदाहरणहरू र उत्कृष्ट अभ्यासहरू छन्।

६.१ नमूना कोड

निम्न नमूनाले ग्राहकको पूर्ण नामलाई पहिलो र अन्तिम नाममा विभाजित गर्दछ।

SELECT name, SUBSTRING(name, 1, LOCATE(' ', name) - 1) AS first_name,
       SUBSTRING(name, LOCATE(' ', name) + 1) AS last_name
FROM customers;

यो क्वेरीले स्पेसद्वारा अलग गरिएको पूर्ण नामबाट पहिलो र अन्तिम नामहरू निकाल्दछ।

६.२ उत्कृष्ट अभ्यासहरू

  • न्यूनतम निकासी : प्रदर्शन प्रभावलाई न्यून गर्न SUBSTRING सँग आवश्यकताभन्दा मात्र निकाल्नुहोस्।
  • डाटा प्रकारको ध्यान : संख्यात्मक डाटामा SUBSTRING लागू गर्दा पहिले यसलाई स्पष्ट रूपमा स्ट्रिङमा रूपान्तरण गर्नुहोस्।
  • सूचकांक विचारहरू : WHERE क्लजमा SUBSTRING प्रयोग गर्दा सूचकांकहरू प्रयोग हुन नसक्न सक्छ, त्यसैले तपाईंको क्वेरी प्रदर्शन जाँच्नुहोस्।

७. त्रुटि ह्यान्डलिङ र संस्करण भिन्नताहरू

SUBSTRING व्यवहारमा त्रुटि ह्यान्डलिङ र MySQL संस्करणहरूबीचको भिन्नताहरू कभर गरौं।

७.१ त्रुटि ह्यान्डलिङ

यदि SUBSTRING मा निर्दिष्ट स्थिति स्ट्रिङको दायराबाहिर छ भने, यसले खाली स्ट्रिङ फर्काउँछ। यो त्रुटि नभएकाले, परिणामहरू जाँच्नका लागि पहिले तर्क थप्न सिफारिस गरिन्छ।

७.२ संस्करण भिन्नताहरू

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