我正在尝试解决这个问题,我在配置单元中有一个表,其中包含customer\u id和ip\u range字段,最后一个字段可以有两种格式:
IP的固定范围,下一个符号为:
10.95.112.135-120.95.112.169
我的查询应该返回该范围内的IP数,其中35个包含两个IP。
IP的多个范围,下一个符号为:
10.95.112.135-10.95.112.157,10.95.112.157-10.95.112.169
我的查询应该返回范围的总和,在本例中是25个IP。
结果应该是每个客户id的IP数
例子:
customer_ID ip_range
1 10.95.11.135-120.95.112.169
2 10.95.11.135-120.95.112.159
3 10.95.11.135-120.95.112.140
4 10.95.112.135-10.95.112.157,10.95.112.160-10.95.112.169
4 10.95.112.101-10.95.112.102
1 10.95.112.120-10.95.112.124
结果应显示:
customer_ID count_IPs
1 40
2 25
3 6
4 35
谢谢您。
1条答案
按热度按时间pkwftd7m1#
这太长了,不能发表评论。
修复数据!您不希望以字符串分隔的格式存储ip列表。这很糟糕。存储ip列表的正确方法是在表中。在您的情况下,这看起来像:
除了ip的字符串版本外,我还将努力转换为4字节的形式(假设ipv4地址表示)。
那么,您的查询是微不足道的。