एक स्ट्रिंग में दो समान डिलीमिटर्स के बीच का भाग निकालने के लिए नेस्टेड SUBSTRING_INDEX() उपयोग करें।
उदाहरण: 'www.tutorialspoint.com' से 'tutorialspoint' निकालना
डिलीमिटर '.' है, हमें दूसरा भाग चाहिए (पहले और दूसरे डॉट के बीच)।
mysql> SELECT SUBSTRING_INDEX(
SUBSTRING_INDEX('www.tutorialspoint.com', '.', 2),
'.', -1
) AS 'Nested SUBSTRING_INDEX';
परिणाम
+------------------------+
| Nested SUBSTRING_INDEX |
+------------------------+
| tutorialspoint |
+------------------------+
चरण-दर-चरण व्याख्या
- आंतरिक:
SUBSTRING_INDEX('www.tutorialspoint.com', '.', 2)→'www.tutorialspoint'(दूसरे डॉट तक) - बाहरी:
SUBSTRING_INDEX('www.tutorialspoint', '.', -1)→'tutorialspoint'(अंतिम डॉट के बाद)
सामान्य पैटर्न
-- N-वें और (N+1)-वें डिलीमिटर के बीच
SUBSTRING_INDEX(SUBSTRING_INDEX(str, delim, N+1), delim, -1)
-- पहला और दूसरा डिलीमिटर के बीच (N=1)
SUBSTRING_INDEX(SUBSTRING_INDEX(str, delim, 2), delim, -1)
अन्य उपयोग
- डोमेन से सबडोमेन निकालना
- पथ से फोल्डर नाम प्राप्त करना
- CSV में विशिष्ट फील्ड निकालना