0

パターンによる MySQL 検索のグループ化に関してこの質問を見つけましたが、IP アドレスに対してこれを行う必要があります。最初の 3 オクテットで IP アドレスをグループ化する必要がありますが、これを達成する方法がよくわかりません。

ありがとう

4

1 に答える 1

2

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

それが役に立てば幸い。

于 2012-04-18T16:10:08.733 に答える