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

मारियाडीबी में INSTR () बनाम LOCATE () के बीच का अंतर

मारियाडीबी में एक INSTR() है फ़ंक्शन और एक LOCATE() . भी समारोह। ऐसा प्रतीत होता है कि दोनों कार्य एक ही काम करते हैं - एक स्ट्रिंग के भीतर एक सबस्ट्रिंग की स्थिति लौटाएं।

हालांकि, एक अंतर है।

मतभेद

हम इन दो कार्यों के बीच उनके सिंटैक्स और साथ ही कुछ उदाहरणों को देखकर अंतर देख सकते हैं।

वाक्यविन्यास

INSTR() . के लिए सिंटैक्स :

INSTR(str,substr)

LOCATE() . के लिए दो स्वीकृत सिंटैक्स :

LOCATE(substr,str)
LOCATE(substr,str,pos)

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

दो कार्यों के बीच के अंतर को संक्षेप में निम्नानुसार किया जा सकता है:

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

तो LOCATE() अतिरिक्त कार्यक्षमता प्रदान करता है जो INSTR() प्रदान नहीं करता है।

उदाहरण 1 - पहला अंतर

यहां एक उदाहरण दिया गया है जो रिवर्स ऑर्डर दिखाता है जिसमें दो फ़ंक्शन अपने तर्क स्वीकार करते हैं:

SELECT 
    INSTR('Disconnect', 'con'),
    LOCATE('con', 'Disconnect');

परिणाम:

+----------------------------+-----------------------------+
| INSTR('Disconnect', 'con') | LOCATE('con', 'Disconnect') |
+----------------------------+-----------------------------+
|                          4 |                           4 |
+----------------------------+-----------------------------+

उदाहरण 2 - दूसरा अंतर

यहां एक उदाहरण दिया गया है जो LOCATE() . की अतिरिक्त कार्यक्षमता को दर्शाता है INSTR() over से अधिक प्रदान करता है :

SELECT 
    INSTR('My cat is a good cat', 'cat') AS "INSTR()",
    LOCATE('cat', 'My cat is a good cat') AS "LOCATE()",
    LOCATE('cat', 'My cat is a good cat', 10) AS "LOCATE() with 3rd Argument";

परिणाम:

+---------+----------+----------------------------+
| INSTR() | LOCATE() | LOCATE() with 3rd Argument |
+---------+----------+----------------------------+
|       4 |        4 |                         18 |
+---------+----------+----------------------------+

यह उदाहरण इस तथ्य पर प्रकाश डालता है कि 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. मारियाडीबी JSON_ARRAY_APPEND() समझाया गया

  2. MySQL प्रतिकृति से MySQL Galera क्लस्टर 4.0 में माइग्रेट करने के लिए युक्तियाँ

  3. मारियाडीबी CONNECTION_ID () समझाया गया

  4. SQL की शक्ति और प्रक्रियात्मक कथनों को MariaDB के Oracle संगतता मोड के साथ संयोजित करना

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