IP एड्रेस (डॉट-सेपरेटेड) को SUBSTRING_INDEX() के नेस्टेड उपयोग से चार ऑक्टेट्स में विभाजित किया जा सकता है।
नमूना डेटा: ipaddress टेबल
mysql> SELECT * FROM ipaddress;
+-----------------+
| ip |
+-----------------+
| 192.128.0.5 |
| 255.255.255.255 |
| 192.0.255.255 |
| 192.0.1.5 |
+-----------------+
क्वेरी
mysql> SELECT
IP,
SUBSTRING_INDEX(ip, '.', 1) AS '1st Part',
SUBSTRING_INDEX(SUBSTRING_INDEX(ip, '.', 2), '.', -1) AS '2nd Part',
SUBSTRING_INDEX(SUBSTRING_INDEX(ip, '.', -2), '.', 1) AS '3rd Part',
SUBSTRING_INDEX(ip, '.', -1) AS '4th Part'
FROM ipaddress;
परिणाम
+-----------------+----------+----------+----------+----------+
| IP | 1st Part | 2nd Part | 3rd Part | 4th Part |
+-----------------+----------+----------+----------+----------+
| 192.128.0.5 | 192 | 128 | 0 | 5 |
| 255.255.255.255 | 255 | 255 | 255 | 255 |
| 192.0.255.255 | 192 | 0 | 255 | 255 |
| 192.0.1.5 | 192 | 0 | 1 | 5 |
+-----------------+----------+----------+----------+----------+
तर्क व्याख्या
| भाग | एक्सप्रेशन | तर्क |
|---|---|---|
| 1st | SUBSTRING_INDEX(ip, '.', 1) | पहले डॉट से पहले |
| 2nd | SUBSTRING_INDEX(SUBSTRING_INDEX(ip, '.', 2), '.', -1) | दूसरे डॉट तक, फिर अंतिम डॉट के बाद |
| 3rd | SUBSTRING_INDEX(SUBSTRING_INDEX(ip, '.', -2), '.', 1) | अंतिम से दूसरा डॉट तक, फिर पहले डॉट से पहले |
| 4th | SUBSTRING_INDEX(ip, '.', -1) | अंतिम डॉट के बाद |
नोट: MySQL 8.0+ में JSON_TABLE या रेगेक्स विकल्प भी हैं, लेकिन यह विधि सभी संस्करणों में काम करती है और तेज है।