Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

IP 주소 레코드에서 중복 값의 하위 부분만 계산하는 MySQL 문자열 조작?

<시간/>

이러한 문자열 조작을 위해서는 MySQL SUBSTRING_INDEX()를 사용해야 합니다. 먼저 테이블을 생성하겠습니다 -

mysql> Create table DemoTable( SystemIpAddress text);Query OK, 영향을 받는 행 0개(0.58초)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> DemoTable 값에 삽입('192.168.130.67');쿼리 OK, 1행 영향(0.09초)mysql> DemoTable 값에 삽입('192.168.130.87');쿼리 OK, 1행 영향(0.13초) )mysql> DemoTable 값에 삽입('192.168.131.47');쿼리 OK, 1행 영향(0.31초)mysql> DemoTable 값에 삽입('192.168.134.50');쿼리 OK, 1행 영향(0.12초)mysql> DemoTable 값에 삽입('192.168.131.12');쿼리 확인, 1행 영향(0.21초)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> 선택 *from DemoTable;

이것은 다음과 같은 출력을 생성합니다 -

+-----------------+| SystemIpAddress |+-----------------+| 192.168.130.67 || 192.168.130.87 || 192.168.131.47 || 192.168.134.50 || 192.168.131.12 |+-----------------+5행 세트(0.00초)

다음은 IP 주소 레코드에 대한 문자열 조작에 대한 쿼리입니다. -

mysql> select substring_index(tbl.SystemIpAddress, '.', 3) , count(*)를 DemoTable tbl 그룹의 Total로 substring_index(tbl.SystemIpAddress, '.', 3) Total desc limit 5에 의한 순서로 선택; 

이것은 다음과 같은 출력을 생성합니다 -

+---------------------------------------------- +-------+| substring_index(tbl.SystemIpAddress, '.', 3) | 합계 |+-------------------------------------------------------------+ -------+| 192.168.130 | 2 || 192.168.131 | 2 || 192.168.134 | 1 |+-------------------------------------------------------------+ -------+3 행 세트(0.00초)