mysql - 在 MySQL 中检测 INET_ATON() 失败的行
问题描述
有没有办法做一个 mysql 选择查询,如:
select INET_ATON(ip_address), id from table ...
INET_ATON 因列中的 IP 无效而失败?
我们在表中发现了一个错误条目,现在我们要确保没有更多条目。
谢谢你。
解决方案
根据文档:
INET_ATON()
NULL
如果它不理解它的论点,则返回。[...]INET_ATON()
可能会或可能不会返回短格式 IP 地址的非 NULL 结果(例如“127.1”作为“127.0.0.1”的表示)。因此,INET_ATON()
不应将其用于此类地址。
因此,您至少需要检测呈现 NULL 的非 NULL 列:
WHERE ip_address IS NOT NULL AND INET_ATON(ip_address) IS NULL
如果您需要微调并从普通的无效地址中分辨出简短的 IP 地址,这会变得更加棘手,但我想您并不真的需要那种级别的准确性。
推荐阅读
- android - ADB Amulator 运行 SDK 29 重新安装
- java - 如何在给定的rdd上应用flatMapToPair?
- java - java哈希表中的哈希
- arrays - 使用 map 函数遍历 JSON 数据
- angular - 非常大的嵌套数组 ngFor SVG 渲染性能问题,架构问题
- python - 如何在 Python 中将本地 HTML 文件转换为 PDF 文件
- javascript - 如何在不丢失任何字符的情况下压缩巨大的字符串?
- c# - 加载的 .dll 的本地化
- reactjs - 在添加浏览器视频时没有显示
- jdbc - 带有临时表的 PoolLimitSQLException