首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较mysql数据库中的IP地址?

如何比较mysql数据库中的IP地址?
EN

Stack Overflow用户
提问于 2014-03-22 09:46:32
回答 1查看 972关注 0票数 1

我将IP地址存储在mysql数据库中,并希望执行查询,检查数据库中是否已存在特定的IP地址。我读到过,建议将IP地址作为INT存储在mysql数据库中。下面是我正在做的事情:

代码语言:javascript
复制
$ip = '209.173.53.167'; // some random IP address
$ip_long = ip2long($ip); // convert IP address to integer

$sql = "SELECT * 
        FROM ip_addresses 
        WHERE ip='{$ip_long}'";

我在存储IP地址时执行了类似的操作,以确保它们被存储为INT,但问题是我在WHERE子句中的比较似乎不起作用。由于某些原因,WHERE ip='{$ip_long}'无法工作。我执行了一些测试,这些测试肯定是有效的,但比较总是失败。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2014-03-22 10:42:06

当存储为32位整数时,IPv4地址需要存储为无符号整数。MySql可能已经悄悄地将一个过大的有符号整数转换为它的二进制补码负数。

您可能希望检查您的表,并仔细检查您的查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22572405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档