我有一个 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 ) )
但是二进制到十六进制到十进制真的有必要还是有更短的形式?
最佳答案
好的,所以真正的 secret 是使用 INET6_NTOA(varbinary_column)
(注意 6
)(也适用于 IP v4 地址)。再简单不过了...
关于mysql - 在 MySQL 中将 VARBINARY 转换为整数或小数表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48578754/