MySQL में नेस्टेड SUBSTRING_INDEX() फ़ंक्शन का उपयोग करके विशिष्ट घटना के आधार पर स्ट्रिंग का भाग निकालें।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> Code VARCHAR(100)
-> );
Query OK, 0 rows affected (1.07 sec)
mysql> INSERT INTO DemoTable VALUES
-> ('/101/102/106'),
-> ('/110/111/101'),
-> ('/111/114/201'),
-> ('/111/118');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+--------------+ | Code | +--------------+ | /101/102/106 | | /110/111/101 | | /111/114/201 | | /111/118 | +--------------+ 4 rows in set (0.00 sec)
तीसरे स्लैश (/) से पहले और दूसरे स्लैश के बाद का भाग निकालना (यानी तीसरा खंड)
mysql> SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(Code, '/', 3), '/', -1) FROM DemoTable;
आउटपुट
+-----------------------------------------------------+ | SUBSTRING_INDEX(SUBSTRING_INDEX(Code, '/', 3), '/', -1) | +-----------------------------------------------------+ | 102 | | 111 | | 114 | | 118 | +-----------------------------------------------------+ 4 rows in set (0.00 sec)
चरण-दर-चरण व्याख्या:
SUBSTRING_INDEX(Code, '/', 3)- पहले 3 खंड लौटाता है:'/101/102','/110/111', आदिSUBSTRING_INDEX(..., '/', -1)- परिणाम के अंतिम खंड को लौटाता है:'102','111', आदि
सामान्य पैटर्न - Nवां खंड निकालना:
SUBSTRING_INDEX(SUBSTRING_INDEX(column, delimiter, N), delimiter, -1)
MySQL 8.0+ विकल्प: JSON_EXTRACT या REGEXP_SUBSTR (8.0.4+) का उपयोग कर सकते हैं।