MySQL에서 특정 문자열이 컬럼(열)에 몇 번 등장하는지 확인하려면 COUNT(*) 함수와 LIKE 연산자를 함께 사용하면 됩니다. 아래 예제를 통해 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable704 (SubjectName text); Query OK, 0 rows affected (0.58 sec)
2. 데이터 삽입하기
INSERT 명령어를 사용해 테이블에 여러 개의 레코드를 추가합니다.
mysql> insert into DemoTable704 values('Introduction to MySQL');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable704 values('Introduction to MongoDB');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable704 values('Introduction to MySQL');
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable704 values('Introduction to Java');
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable704 values('Introduction to MongoDB');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable704 values('Introduction to MySQL');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable704 values('Introduction to C');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable704 values('Introduction to Spring and Hibernate');
Query OK, 1 row affected (0.12 sec)3. 전체 레코드 조회하기
SELECT 문을 사용해 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable704;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+--------------------------------------+ | SubjectName | +--------------------------------------+ | Introduction to MySQL | | Introduction to MongoDB | | Introduction to MySQL | | Introduction to Java | | Introduction to MongoDB | | Introduction to MySQL | | Introduction to C | | Introduction to Spring and Hibernate | +--------------------------------------+ 8 rows in set (0.00 sec)
4. 특정 문자열의 등장 횟수 세기
컬럼에서 특정 문자열이 몇 번 나타나는지 확인하는 쿼리는 다음과 같습니다. WHERE 절과 LIKE '%문자열%' 조건을 사용해 해당 문자열이 포함된 행만 필터링한 후 COUNT(*)로 개수를 구합니다.
mysql> SELECT COUNT(*) from DemoTable704 WHERE SubjectName LIKE '%Introduction to MySQL%';
실행 결과는 다음과 같습니다.
+----------+ | COUNT(*) | +----------+ | 3 | +----------+ 1 row in set (0.00 sec)
결과를 보면 'Introduction to MySQL'이라는 문자열이 SubjectName 컬럼에 총 3번 등장한 것을 확인할 수 있습니다. 이처럼 COUNT(*)와 LIKE를 조합하면 특정 문자열의 포함 횟수를 손쉽게 집계할 수 있습니다.