我发现了这个关于按模式对 MySQL 搜索进行分组的问题,但我需要对 IP 地址执行此操作。我需要按前 3 个八位字节对 IP 地址进行分组,但我不太明白如何完成此操作。
谢谢
MySQL SUBSTRING_INDEX 函数在这里可能有用:
drop table if exists test_ip;
create table test_ip
(id int unsigned not null primary key auto_increment,
ip varchar(50) not null,
UNIQUE KEY test_ip_uidx1 (ip));
insert into test_ip (ip) values ('24.21.114.4');
insert into test_ip (ip) values ('24.21.114.5');
insert into test_ip (ip) values ('24.21.114.6');
insert into test_ip (ip) values ('24.21.115.6');
insert into test_ip (ip) values ('24.21.115.7');
insert into test_ip (ip) values ('24.21.115.8');
insert into test_ip (ip) values ('24.21.116.1');
select substring_index(ti.ip,'.',3) as firstThreeOctet,count(*) as ipCount
from test_ip ti
group by substring_index(ti.ip,'.',3);
希望能帮助到你。