我有一个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到十六进制到十进制真的有必要还是有更短的形式?
好的,所以真正的秘诀是使用INET6_NTOA(varbinary_column)
(注意6
)(也适用于IP v4地址)。再简单不过了...