📜  MySQL 中的 INET_NTOA()函数(1)

📅  最后修改于: 2023-12-03 15:33:02.589000             🧑  作者: Mango

MySQL 中的 INET_NTOA() 函数

在 MySQL 中,IP 地址存储在整数类型字段中,但是在一些场景下,需要将整数类型字段转换为 IP 地址字符串,这时候可以使用 MySQL 提供的 INET_NTOA() 函数。

函数作用

INET_NTOA() 函数的作用是将一个整数类型字段表示的 IPv4 地址,转换成相应的点分十进制字符串表示。

语法

INET_NTOA(expr)

参数说明
  • expr:必填,表示一个用整数类型存储的 IPv4 地址。
返回值
  • 返回一个表示点分十进制字符串表示的 IPv4 地址的字符串值。
使用示例

现有一个 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。