📅  最后修改于: 2023-12-03 15:33:02.589000             🧑  作者: Mango
在 MySQL 中,IP 地址存储在整数类型字段中,但是在一些场景下,需要将整数类型字段转换为 IP 地址字符串,这时候可以使用 MySQL 提供的 INET_NTOA() 函数。
INET_NTOA() 函数的作用是将一个整数类型字段表示的 IPv4 地址,转换成相应的点分十进制字符串表示。
INET_NTOA(expr)
现有一个 ip_address
表,其中 ip
是一个整数类型字段,存储着对应的 IPv4 地址。
| id | ip | | -- | ----------| | 1 | 3232235777 | | 2 | 16779264 | | 3 | 2066090497 | | 4 | 2851995648 |
我们需要将整数类型的 ip
转换成相应的点分十进制字符串表示,可以使用下面的 SQL 语句。
SELECT id, INET_NTOA(ip) AS ip_str FROM ip_address;
执行上述语句后,将得到以下结果。
| id | ip_str | | -- | ------------ | | 1 | 192.168.1.1 | | 2 | 1.2.3.4 | | 3 | 123.45.67.1 | | 4 | 169.254.0.0 |
从结果中可以看出,ip
字段被成功地转换为了相应的点分十进制字符串表示。
INET_NTOA() 函数仅能用于转换整数类型表示的 IPv4 地址,不能用于 IPv6 地址的转换;
如果参数不是有效的 IPv4 地址, INET_NTOA() 函数将返回 NULL。