2012-04-18 7 views
0

私はthis questionというパターンでMySQL検索をグループ化していますが、IPアドレスに対してこれを行う必要があります。最初の3オクテットでIPアドレスをグループ化する必要がありますが、これをどのようにするのかは分かりません。グループMySQLのREGEXによるIPアドレスの検索

おかげで、ここで役に立つかもしれない

+0

達成しようとしている出力の例を挙げることはできますか?一意の最初の3オクテットのリストだけが必要ですか、それとも別のものの後ろにいますか? – Tim

+0

@Tim - yes、すべてのIPアドレスの最初の3オクテットのリストとそれぞれのカウント –

答えて

2

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

はそれがお役に立てば幸いです。

+0

甘い!あなたはこのMySQL n00bのために男性の間で神様です! –

関連する問題