MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

कैसे LOCATE () मारियाडीबी में काम करता है

मारियाडीबी में, LOCATE() एक अंतर्निहित स्ट्रिंग फ़ंक्शन है जो किसी अन्य स्ट्रिंग के भीतर एक सबस्ट्रिंग की पहली घटना की स्थिति देता है।

LOCATE() INSTR() . के समान है फ़ंक्शन, सिवाय इसके कि LOCATE() खोज के लिए प्रारंभिक स्थिति निर्दिष्ट करने का विकल्प प्रदान करता है। साथ ही, इन दो कार्यों के बीच तर्क क्रम को उलट दिया जाता है।

सिंटैक्स

LOCATE() फ़ंक्शन दो-तर्क सिंटैक्स और तीन-तर्क सिंटैक्स का समर्थन करता है।

दो तर्क वाक्य रचना:

LOCATE(substr,str)

तीन तर्क वाक्य रचना:

LOCATE(substr,str,pos)

जहां str स्ट्रिंग है, substr खोजने के लिए सबस्ट्रिंग है, और pos खोज शुरू करने की स्थिति है।

उदाहरण

यहां एक बुनियादी उदाहरण दिया गया है:

SELECT LOCATE('hot', 'The hot sun');

परिणाम:

+------------------------------+
| LOCATE('hot', 'The hot sun') |
+------------------------------+
|                            5 |
+------------------------------+

प्रारंभिक स्थिति

खोज के लिए प्रारंभिक स्थिति प्रदान करने का एक उदाहरण यहां दिया गया है:

SELECT LOCATE('hot', 'The hot sun is really hot', 8);

परिणाम:

+------------------------------------------------+
| LOCATE('hot', 'The hot sun is really hot', 8)  |
+------------------------------------------------+
|                                             23 |
+------------------------------------------------+

केस संवेदनशीलता

LOCATE() केस असंवेदनशील खोज करता है:

SELECT LOCATE('HOT', 'The hot sun');

परिणाम:

+------------------------------+
| LOCATE('HOT', 'The hot sun') |
+------------------------------+
|                            5 |
+------------------------------+

एकाधिक घटनाएं

यदि सबस्ट्रिंग एक से अधिक बार आती है, तो केवल पहले वाले की स्थिति (प्रारंभिक स्थिति से) वापस आती है:

SELECT LOCATE('hot', 'The hot sun is really hot');

परिणाम:

+--------------------------------------------+
| LOCATE('hot', 'The hot sun is really hot') |
+--------------------------------------------+
|                                          5 |
+--------------------------------------------+

यहाँ यह एक प्रारंभिक स्थिति के साथ है:

SELECT LOCATE('hot', 'The hot sun is really hot', 20);

परिणाम:

+------------------------------------------------+
| LOCATE('hot', 'The hot sun is really hot', 20) |
+------------------------------------------------+
|                                             23 |
+------------------------------------------------+

आंशिक मिलान

अगर सबस्ट्रिंग एक बड़े शब्द का हिस्सा है, तो यह अभी भी एक मैच है:

SELECT LOCATE('hot', 'The hottest sun');

परिणाम:

+----------------------------------+
| LOCATE('hot', 'The hottest sun') |
+----------------------------------+
|                                5 |
+----------------------------------+

लेकिन अगर स्ट्रिंग सबस्ट्रिंग का केवल एक हिस्सा है, तो यह एक मैच नहीं है:

SELECT LOCATE('hottest', 'The hot sun');

परिणाम:

+----------------------------------+
| LOCATE('hottest', 'The hot sun') |
+----------------------------------+
|                                0 |
+----------------------------------+

रिक्त स्थान

स्पेस कैरेक्टर अभी भी एक स्ट्रिंग है, इसलिए हम सबस्ट्रिंग में स्पेस शामिल कर सकते हैं, भले ही यह एकमात्र कैरेक्टर हो:

SELECT LOCATE(' ', 'The hot sun');

परिणाम:

+----------------------------+
| LOCATE(' ', 'The hot sun') |
+----------------------------+
|                          4 |
+----------------------------+

खाली स्ट्रिंग

यहाँ क्या होता है जब सबस्ट्रिंग एक खाली स्ट्रिंग होती है:

SELECT LOCATE('', 'The hot sun');

परिणाम:

+---------------------------+
| LOCATE('', 'The hot sun') |
+---------------------------+
|                         1 |
+---------------------------+

कोई मिलान नहीं

अगर स्ट्रिंग में सबस्ट्रिंग नहीं मिलता है, तो LOCATE() रिटर्न 0 :

SELECT LOCATE('cold', 'The hot sun');

परिणाम:

+-------------------------------+
| LOCATE('cold', 'The hot sun') |
+-------------------------------+
|                             0 |
+-------------------------------+

अशक्त तर्क

null प्रदान करना किसी भी तर्क के लिए null . में परिणाम मिलता है :

SELECT 
    LOCATE(null, 'The hot sun'),
    LOCATE('hot', null);

परिणाम:

+-----------------------------+---------------------+
| LOCATE(null, 'The hot sun') | LOCATE('hot', null) |
+-----------------------------+---------------------+
|                        NULL |                NULL |
+-----------------------------+---------------------+

तर्कों की गलत संख्या प्रदान करना

कॉलिंग LOCATE() तर्कों की गलत संख्या के साथ, या बिना कोई तर्क पारित किए त्रुटि उत्पन्न होती है:

SELECT LOCATE('hot');

परिणाम:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOCATE'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. भंडारण इंजन विकल्प:एरिया

  2. MariaDB AX के साथ विश्लेषिकी - tThe Open Source Columnar Datastore

  3. मारियाडीबी और माईएसक्यूएल के लिए क्लाउड डिजास्टर रिकवरी

  4. मारियाडीबी क्लस्टर के लिए मल्टी-क्लाउड पूर्ण डेटाबेस क्लस्टर विफलता विकल्प

  5. मारियाडीबी में एक तिथि से लघु दिन का नाम कैसे प्राप्त करें