是否可以让MySQL SELECT语句包含两个函数?

时间:2014-12-11 11:40:58

标签: mysql

数据库中的列包含十六进制格式的IP地址。

我想选择该列并将输出转换回传统的IP地址格式。

转换过程分为两个步骤 -

SELECT CONV('IPAddr', 16, 10) FROM event;

>3362028388
>... plus plenty more addresses

然后

INET_NTOA (3362028388)

>200.100.123.100

我遇到的问题如下:

  1. 我想将此功能合并为一个声明。

  2. INET_NTOA命令需要通过包含列名而不是单个IP​​来工作。我知道列名可以代替IP地址,但是,在正常状态下,该列包含十六进制值,因此这不起作用。

  3. 是否可以将转换的输出保存在变量中并使INET_NTOA命令转换变量中的地址?

1 个答案:

答案 0 :(得分:0)

您也可以将函数放入函数中;)

SELECT INET_NTOA(CONV(IPAddr, 16, 10)) FROM event;

正如草莓已经提到的那样,单引号它是一个字符串,而不是一列。