首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从ip2location ip库中选择多个ip信息?

如何从ip2location ip库中选择多个ip信息?
EN

Stack Overflow用户
提问于 2019-04-18 03:05:57
回答 2查看 74关注 0票数 0

我正在尝试从存储IP地址范围的数据库中选择多个IP地址的IP信息。DB中的简单行如下所示:

代码语言:javascript
复制
 ip_from  |  ip_to   | country_code | city_name
----------+----------+--------------+-----------
        0 | 16777215 | -            | -
 16777216 | 16777471 | AU           | Brisbane
 16777472 | 16778239 | CN           | Fuzhou

我需要编写一个查询,其中我可以将I列表作为整数传递,例如(16777221,16777490),它应该返回如下所示的结果:

代码语言:javascript
复制
 ip       | country_code | city_name
----------+--------------+-----------
 16777221 | AU           | Brisbane
 16777490 | CN           | Fuzhou

目前,我通过以下查询获取一个IP地址的信息:select * from ip_table where 16777221 <= ip_to order by ip_to limit 1;

EN

回答 2

Stack Overflow用户

发布于 2019-04-18 03:18:48

您可以加入使用VALUES生成的set。

代码语言:javascript
复制
SELECT v.ip,
       i.country_code,
       i.city_name
       FROM (VALUES (16777221),
                    (16777490)) v (ip)
            LEFT JOIN ip_table i
                      ON i.ip_from <= v.ip
                         AND i.ip_to >= v.ip;

db<>fiddle

如果要排除在ip_table中找不到匹配项的行,请将左联接更改为内联接。

票数 2
EN

Stack Overflow用户

发布于 2019-04-18 03:10:48

使用IN关键字。

SELECT * FROM ip_table WHERE ip_to IN (16777221,16777490)

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

https://stackoverflow.com/questions/55734400

复制
相关文章

相似问题

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