数据库中的列包含十六进制格式的IP地址。
我想选择该列并将输出转换回传统的IP地址格式。
转换过程分为两个步骤 -
SELECT CONV('IPAddr', 16, 10) FROM event;
>3362028388
>... plus plenty more addresses
然后
INET_NTOA (3362028388)
>200.100.123.100
我遇到的问题如下:
我想将此功能合并为一个声明。
INET_NTOA命令需要通过包含列名而不是单个IP来工作。我知道列名可以代替IP地址,但是,在正常状态下,该列包含十六进制值,因此这不起作用。
是否可以将转换的输出保存在变量中并使INET_NTOA命令转换变量中的地址?
答案 0 :(得分:0)
您也可以将函数放入函数中;)
SELECT INET_NTOA(CONV(IPAddr, 16, 10)) FROM event;
正如草莓已经提到的那样,单引号它是一个字符串,而不是一列。