我有一个MySQL(5.7.21)应用程序数据库,其中包含VARBINARY(16)
的IP(v4)地址(我假设这个长度是为了支持IPv6)。
我通常通过phpMyAdmin访问此数据库以进行维护。
我需要将这些IP地址提取为一些我可以用脚本处理的文本格式。 PhpMyAdmin在查询结果中以十六进制显示这些列,但导出到文件会创建难以在脚本或文本编辑器中处理的文件。
我尝试了CAST
/CONVERT
的几种变体,但似乎没有任何效果(特别是强制转换为SIGNED
或UNSIGNED
会产生0
)。
有解决方案吗?我忽略了什么吗?
好的,所以解决方案正在使用:
INET_NTOA ( CONV ( HEX (varbinary_column),16,10 ) )
但是bin-to-hex-to-decimal真的有必要还是有更短的形式?
答案 0 :(得分:0)
好的,所以真正的秘诀是使用INET6_NTOA(varbinary_column)
(注意6
)(也适用于IP v4地址)。无法轻松......