मारियाडीबी में, SUBSTRING()
एक अंतर्निहित स्ट्रिंग फ़ंक्शन है जो किसी दिए गए स्ट्रिंग से एक सबस्ट्रिंग देता है।
SUBSTRING()
कम से कम दो तर्कों की आवश्यकता है; स्ट्रिंग, और वह स्थिति जिसके लिए सबस्ट्रिंग को निकालना है। यह एक वैकल्पिक तीसरे तर्क को भी स्वीकार करता है जो आपको यह निर्दिष्ट करने की अनुमति देता है कि सबस्ट्रिंग कितनी लंबी होनी चाहिए।
सिंटैक्स
सिंटैक्स निम्नलिखित रूप लेता है:
SUBSTRING(str,pos),
SUBSTRING(str FROM pos),
SUBSTRING(str,pos,len),
SUBSTRING(str FROM pos FOR len)
जहां str
स्ट्रिंग है, pos
सबस्ट्रिंग की प्रारंभिक स्थिति है, और len
निकालने के लिए वर्णों की संख्या है।
FROM
. का उपयोग करने वाले दो रूप कीवर्ड मानक SQL सिंटैक्स हैं।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT SUBSTRING('Big fat cat', 5);
परिणाम:
+-----------------------------+ | SUBSTRING('Big fat cat', 5) | +-----------------------------+ | fat cat | +-----------------------------+
यहाँ वही उदाहरण है, लेकिन मानक SQL सिंटैक्स का उपयोग करना:
SELECT SUBSTRING('Big fat cat' FROM 5);
परिणाम:
+---------------------------------+ | SUBSTRING('Big fat cat' FROM 5) | +---------------------------------+ | fat cat | +---------------------------------+
सबस्ट्रिंग लंबाई
यहां एक उदाहरण दिया गया है जो निकालने के लिए सबस्ट्रिंग की लंबाई निर्दिष्ट करता है:
SELECT SUBSTRING('Big fat cat', 5, 3);
परिणाम:
+--------------------------------+ | SUBSTRING('Big fat cat', 5, 3) | +--------------------------------+ | fat | +--------------------------------+
और यहाँ यह मानक SQL सिंटैक्स का उपयोग कर रहा है:
SELECT SUBSTRING('Big fat cat' FROM 5 FOR 3);
परिणाम:
+---------------------------------------+ | SUBSTRING('Big fat cat' FROM 5 FOR 3) | +---------------------------------------+ | fat | +---------------------------------------+
नकारात्मक स्थिति
स्थिति के लिए ऋणात्मक मान निर्दिष्ट करने से प्रारंभिक स्थिति को स्ट्रिंग के अंत से पीछे की ओर गिना जाता है:
SELECT SUBSTRING('Big fat cat', -3);
परिणाम:
+------------------------------+ | SUBSTRING('Big fat cat', -3) | +------------------------------+ | cat | +------------------------------+
मानक SQL सिंटैक्स का उपयोग करते समय एक नकारात्मक स्थिति का भी उपयोग किया जा सकता है:
SELECT SUBSTRING('Big fat cat' FROM -7 FOR 3);
परिणाम:
+----------------------------------------+ | SUBSTRING('Big fat cat' FROM -7 FOR 3) | +----------------------------------------+ | fat | +----------------------------------------+
इस मामले में मैंने सबस्ट्रिंग के लिए लंबाई भी निर्धारित की है।
Oracle मोड
Oracle मोड में होने पर, 0
. की प्रारंभ स्थिति (शून्य) को 1
. माना जाता है . हालांकि, 1
. की प्रारंभ स्थिति 1
. के रूप में भी माना जाता है ।
यह अन्य मोड के विपरीत है, जहां 0
एक खाली स्ट्रिंग लौटाएगा।
उदाहरण:
SET SQL_MODE=ORACLE;
SELECT
SUBSTRING('Big fat cat', 0) AS "0",
SUBSTRING('Big fat cat', 1) AS "1";
परिणाम:
+-------------+-------------+ | 0 | 1 | +-------------+-------------+ | Big fat cat | Big fat cat | +-------------+-------------+
यहाँ यह डिफ़ॉल्ट मोड में है:
SET SQL_MODE=DEFAULT;
SELECT
SUBSTRING('Big fat cat', 0) AS "0",
SUBSTRING('Big fat cat', 1) AS "1";
परिणाम:
+------+-------------+ | 0 | 1 | +------+-------------+ | | Big fat cat | +------+-------------+
अशक्त तर्क
यदि कोई (या सभी) तर्क null
. हैं , SUBSTRING()
फ़ंक्शन रिटर्न null
:
SELECT
SUBSTRING(null, 3, 3),
SUBSTRING('Coffee', null, 3),
SUBSTRING('Coffee', 3, null),
SUBSTRING(null, null, null);
परिणाम:
+-----------------------+------------------------------+------------------------------+-----------------------------+ | SUBSTRING(null, 3, 3) | SUBSTRING('Coffee', null, 3) | SUBSTRING('Coffee', 3, null) | SUBSTRING(null, null, null) | +-----------------------+------------------------------+------------------------------+-----------------------------+ | NULL | NULL | NULL | NULL | +-----------------------+------------------------------+------------------------------+-----------------------------+
अनुपलब्ध तर्क
कॉलिंग SUBSTRING()
कोई तर्क पारित किए बिना त्रुटि उत्पन्न होती है:
SELECT SUBSTRING();
परिणाम:
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पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।