LOCATE() और SUBSTR() का उपयोग करके डिलीमिटर्स के बीच टेक्स्ट निकालना
डिलीमिटर्स (जैसे कोलन `:`) के बीच का टेक्स्ट निकालने के लिए LOCATE() और SUBSTR() फ़ंक्शन्स का उपयोग करें:
SELECT SUBSTR(yourColumnName,
LOCATE(':', yourColumnName) + 1,
(CHAR_LENGTH(yourColumnName) - LOCATE(':', REVERSE(yourColumnName)) - LOCATE(':', yourColumnName))
) AS anyAliasName
FROM yourTableName;
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE SearchTextBetweenDelimitersDemo (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Words LONGTEXT,
-> PRIMARY KEY(Id)
-> );
mysql> INSERT INTO SearchTextBetweenDelimitersDemo(Words) VALUES('Object:Oriented:Programming');
mysql> INSERT INTO SearchTextBetweenDelimitersDemo(Words) VALUES('C++:Java:C#');
mysql> INSERT INTO SearchTextBetweenDelimitersDemo(Words) VALUES('SQLServer:MySQL:Oracle');
mysql> INSERT INTO SearchTextBetweenDelimitersDemo(Words) VALUES('SQL SQLServer:MySQL:Oracle');
सभी रिकॉर्ड्स देखना
mysql> SELECT * FROM SearchTextBetweenDelimitersDemo;
आउटपुट:
+----+-----------------------------+ | Id | Words | +----+-----------------------------+ | 1 | Object:Oriented:Programming | | 2 | C++:Java:C# | | 3 | SQLServer:MySQL:Oracle | | 4 | SQL SQLServer:MySQL:Oracle | +----+-----------------------------+
पहले और दूसरे डिलीमिटर के बीच का टेक्स्ट निकालना
mysql> SELECT
-> SUBSTR(Words,
-> LOCATE(':', Words) + 1,
-> (CHAR_LENGTH(Words) - LOCATE(':', REVERSE(Words)) - LOCATE(':', Words))
-> ) AS Text
-> FROM SearchTextBetweenDelimitersDemo;
आउटपुट:
+----------+ | Text | +----------+ | Oriented | | Java | | MySQL | | MySQL | +----------+
यह क्वेरी पहले डिलीमिटर के बाद और अंतिम डिलीमिटर से पहले का टेक्स्ट निकालती है।