首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找数字是否在MySQL数据库中不同字段中的两个数字之间

查找数字是否在MySQL数据库中不同字段中的两个数字之间
EN

Stack Overflow用户
提问于 2010-03-03 06:00:23
回答 3查看 27.9K关注 0票数 19

如何通过PHP对MySQL数据库上的查询进行格式化,以确定IP地址是否位于两个不同字段中的两个数字之间?

要查找的IP地址的数字表示形式:

代码语言:javascript
复制
1265631252

数据库格式:

代码语言:javascript
复制
 IP FROM      IP TO       REGISTRY  ASSIGNED   CTRY CNTRY COUNTRY
"1265631232","1265893375","arin","1152835200","US","USA","United States"
"1265893376","1265958911","arin","1149120000","US","USA","United States"
"1265958912","1266024447","arin","1149120000","US","USA","United States"
"1266024448","1266089983","arin","1162425600","US","USA","United States"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-03 06:04:06

类似这样的查询:

代码语言:javascript
复制
SELECT * FROM your_table WHERE 1265631252 BETWEEN `IP FROM` AND `IP TO`;

将返回提供的数字介于IP FROMIP TO之间的行。

票数 40
EN

Stack Overflow用户

发布于 2010-03-03 06:25:56

如果您已经有了与IP地址等效的DWORD值,那么response from Jordan将完成此任务。

代码语言:javascript
复制
SELECT * FROM your_table WHERE 1265631252 BETWEEN `IP FROM` AND `IP TO`;

如果需要,在执行查询之前,计算ip地址的DWORD等效值,您可以执行以下操作。

给定形式为part1.part2.part3.part4的ip地址a,则可以使用以下公式计算DWORD等价物:

代码语言:javascript
复制
dword(a) = ((a.part1 * 256 + a.part2) * 256 + a.part3) * 256 + a.part4

然后,您可以在SQL查询中使用dword(a)结果。

206.191.158.55这样的IP地址开始。

代码语言:javascript
复制
((206 * 256 + 191) * 256 + 158) * 256 + 55

结果将是IP地址的双字等价物。在本例中为3468664375

请参阅有关ip地址here的DWORD等价物的更多信息。

票数 3
EN

Stack Overflow用户

发布于 2010-03-03 06:05:18

下面这样的内容如何:

代码语言:javascript
复制
select *
from your_table
where ip_from <= '1265631252'
  and ip_to >= '1265631252'

例如,获取'1265631252‘在ip_fromip_to之间的所有行?

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

https://stackoverflow.com/questions/2367152

复制
相关文章

相似问题

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