在MySQL中将VARBINARY转换为整数或十进制表示

时间:2018-02-02 08:37:31

标签: mysql phpmyadmin varbinary

我有一个MySQL(5.7.21)应用程序数据库,其中包含VARBINARY(16)的IP(v4)地址(我假设这个长度是为了支持IPv6)。

我通常通过phpMyAdmin访问此数据库以进行维护。

我需要将这些IP地址提取为一些我可以用脚本处理的文本格式。 PhpMyAdmin在查询结果中以十六进制显示这些列,但导出到文件会创建难以在脚本或文本编辑器中处理的文件。

我尝试了CAST/CONVERT的几种变体,但似乎没有任何效果(特别是强制转换为SIGNEDUNSIGNED会产生0)。

有解决方案吗?我忽略了什么吗?

修改

好的,所以解决方案正在使用:

INET_NTOA ( CONV ( HEX (varbinary_column),16,10 ) )

但是bin-to-hex-to-decimal真的有必要还是有更短的形式?

1 个答案:

答案 0 :(得分:0)

好的,所以真正的秘诀是使用INET6_NTOA(varbinary_column)(注意6)(也适用于IP v4地址)。无法轻松......