MySQL字符串操作仅计算IP地址记录中重复值的子部分?
对于此类字符串操作,您需要使用MySQLSUBSTRING_INDEX()。让我们首先创建一个表-
mysql> create table DemoTable ( SystemIpAddress text );
使用插入命令在表中插入一些记录-
mysql> insert into DemoTable values('192.168.130.67'); mysql> insert into DemoTable values('192.168.130.87'); mysql> insert into DemoTable values('192.168.131.47'); mysql> insert into DemoTable values('192.168.134.50'); mysql> insert into DemoTable values('192.168.131.12');
使用select语句显示表中的所有记录-
mysql> select *from DemoTable ;
这将产生以下输出-
+-----------------+ | SystemIpAddress | +-----------------+ | 192.168.130.67 | | 192.168.130.87 | | 192.168.131.47 | | 192.168.134.50 | | 192.168.131.12 | +-----------------+ 5 rows in set (0.00 sec)
以下是对IP地址记录上的字符串操作的查询-
mysql> select substring_index(tbl.SystemIpAddress, '.', 3) , count(*) as Total from DemoTable tbl group by substring_index(tbl.SystemIpAddress, '.', 3) order by Total desc limit 5;
这将产生以下输出-
+----------------------------------------------+-------+ | substring_index(tbl.SystemIpAddress, '.', 3) | Total | +----------------------------------------------+-------+ | 192.168.130 | 2 | | 192.168.131 | 2 | | 192.168.134 | 1 | +----------------------------------------------+-------+ 3 rows in set (0.00 sec)