/ / Group MySQL pesquisa por REGEX para Endereços IP - mysql, regex, banco de dados, group-by

Grupo MySQL pesquisa por REGEX para endereços IP - mysql, regex, banco de dados, group-by

eu encontrei essa questão No que diz respeito ao agrupamento de uma pesquisa MySQL por um padrão, mas eu estou precisando de fazer isso para endereços IP. Eu preciso agrupar endereços IP pelos primeiros 3 octetos, mas eu não vejo como fazer isso.

obrigado

Respostas:

2 para resposta № 1

o Função MySQL SUBSTRING_INDEX pode ser útil aqui:

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);

Espero que ajude.