मारियाडीबी में, MID()
SUBSTRING()
. का पर्यायवाची है . यह किसी दिए गए स्ट्रिंग से एक सबस्ट्रिंग देता है।
मारियाडीबी दस्तावेज के अनुसार यह SUBSTRING(str,pos,len)
का पर्याय है SUBSTRING()
. का सिंटैक्स , हालांकि, मेरे परीक्षणों से पता चलता है कि यह सभी विभिन्न रूपों के साथ काम करता है।
सिंटैक्स
मारियाडीबी प्रलेखन के अनुसार, वाक्य रचना इस प्रकार है:
MID(str,pos,len)
हालांकि, मैंने पाया है कि यह निम्नलिखित रूपों के साथ काम करता है (जो वही रूप हैं जो SUBSTRING()
हैं। समर्थन करता है):
MID(str,pos),
MID(str FROM pos),
MID(str,pos,len),
MID(str FROM pos FOR len)
जहां str
स्ट्रिंग है, pos
सबस्ट्रिंग की प्रारंभिक स्थिति है, और len
निकालने के लिए वर्णों की संख्या है।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT MID('Drink your beer', 7);
परिणाम:
+---------------------------+ | MID('Drink your beer', 7) | +---------------------------+ | your beer | +---------------------------+
यहाँ वही उदाहरण है, लेकिन FROM
. का उपयोग करके वाक्य रचना:
SELECT MID('Drink your beer' FROM 7);
परिणाम:
+-------------------------------+ | MID('Drink your beer' FROM 7) | +-------------------------------+ | your beer | +-------------------------------+
सबस्ट्रिंग लंबाई
यहां एक उदाहरण दिया गया है जो निकालने के लिए सबस्ट्रिंग की लंबाई निर्दिष्ट करता है। यह एकमात्र सिंटैक्स है जिसे मारियाडीबी दस्तावेज़ MID()
. के लिए उद्धृत करता है समारोह।
SELECT MID('Drink your beer', 7, 4);
परिणाम:
+------------------------------+ | MID('Drink your beer', 7, 4) | +------------------------------+ | your | +------------------------------+
और यहाँ यह FROM...FOR
. का उपयोग कर रहा है वाक्य रचना:
SELECT MID('Drink your beer' FROM 7 FOR 4);
परिणाम:
+-------------------------------------+ | MID('Drink your beer' FROM 7 FOR 4) | +-------------------------------------+ | your | +-------------------------------------+
नकारात्मक स्थिति
स्थिति के लिए ऋणात्मक मान निर्दिष्ट करने से प्रारंभिक स्थिति को स्ट्रिंग के अंत से पीछे की ओर गिना जाता है:
SELECT MID('Drink your beer', -9);
परिणाम:
+----------------------------+ | MID('Drink your beer', -9) | +----------------------------+ | your beer | +----------------------------+
FROM
. का उपयोग करते समय एक नकारात्मक स्थिति का भी उपयोग किया जा सकता है वाक्य रचना:
SELECT MID('Drink your beer' FROM -9 FOR 4);
परिणाम:
+--------------------------------------+ | MID('Drink your beer' FROM -9 FOR 4) | +--------------------------------------+ | your | +--------------------------------------+
इस मामले में मैंने सबस्ट्रिंग के लिए लंबाई भी निर्धारित की है।
Oracle मोड
Oracle मोड में होने पर, 0
. की प्रारंभ स्थिति (शून्य) को 1
. माना जाता है . हालांकि, 1
. की प्रारंभ स्थिति 1
. के रूप में भी माना जाता है ।
यह अन्य मोड के विपरीत है, जहां 0
एक खाली स्ट्रिंग लौटाएगा।
उदाहरण:
SET SQL_MODE=ORACLE;
SELECT
MID('Drink your beer', 0) AS "0",
MID('Drink your beer', 1) AS "1";
परिणाम:
+-----------------+-----------------+ | 0 | 1 | +-----------------+-----------------+ | Drink your beer | Drink your beer | +-----------------+-----------------+
यहाँ यह डिफ़ॉल्ट मोड में है:
SET SQL_MODE=DEFAULT;
SELECT
MID('Drink your beer', 0) AS "0",
MID('Drink your beer', 1) AS "1";
परिणाम:
+------+-----------------+ | 0 | 1 | +------+-----------------+ | | Drink your beer | +------+-----------------+
अशक्त तर्क
यदि कोई (या सभी) तर्क null
. हैं , MID()
फ़ंक्शन रिटर्न null
:
SELECT
MID(null, 3, 3),
MID('Beer', null, 3),
MID('Beer', 3, null),
MID(null, null, null);
परिणाम:
+-----------------+----------------------+----------------------+-----------------------+ | MID(null, 3, 3) | MID('Beer', null, 3) | MID('Beer', 3, null) | MID(null, null, null) | +-----------------+----------------------+----------------------+-----------------------+ | NULL | NULL | NULL | NULL | +-----------------+----------------------+----------------------+-----------------------+
अनुपलब्ध तर्क
कॉलिंग MID()
कोई तर्क पारित किए बिना त्रुटि उत्पन्न होती है:
SELECT MID();
परिणाम:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।