0
我發現this question關於通過模式對MySQL搜索進行分組,但我需要爲IP地址執行此操作。我需要將前3個八位字節的IP地址分組,但我不太明白如何實現這一點。REGEX尋找IP地址的MySQL搜索
感謝
我發現this question關於通過模式對MySQL搜索進行分組,但我需要爲IP地址執行此操作。我需要將前3個八位字節的IP地址分組,但我不太明白如何實現這一點。REGEX尋找IP地址的MySQL搜索
感謝
的MySQL SUBSTRING_INDEX function可能會在這裏有用:
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);
希望它能幫助。
甜!你是這個MySQL n00b的男人之神! – 2012-04-18 16:22:38
你能提供一個你想要達到的輸出的例子嗎?你只想要一個獨特的前3個八位字節的列表,或者你是在追尋別的東西嗎? – Tim 2012-04-18 16:00:07
@Tim - 是的,所有IP地址的前3個八位字節的列表以及每個IP地址的計數。 – 2012-04-18 16:04:47