Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào chúng ta có thể chia Địa chỉ IP thành bốn bộ tám tương ứng bằng cách sử dụng hàm SUBSTRING_INDEX () của MySQL?

Giả sử chúng ta có một bảng có tên là ‘ipaddress’ chứa các địa chỉ IP dưới dạng các giá trị của nó trong cột ‘IP’ như sau -

mysql> Select * from ipaddress;
+-----------------+
| ip              |
+-----------------+
| 192.128.0.5     |
| 255.255.255.255 |
| 192.0.255.255   |
| 192.0.1.5       |
+-----------------+
4 rows in set (0.10 sec)

Bây giờ với sự trợ giúp của hàm SUBSTRING_INDEX () trong truy vấn sau, chúng ta có thể chia địa chỉ IP thành bốn octet -

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        |
+-----------------+----------+----------+----------+----------+
4 rows in set (0.05 sec)