Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 LIKE 연산자로 문자열 패턴 매칭하는 방법

MySQL에서 특정 패턴과 일치하는 문자열을 검색하려면 LIKE 연산자를 사용합니다. LIKE는 와일드카드(%)와 함께 사용하여 원하는 형식의 문자열을 유연하게 찾을 수 있습니다.

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
-> (
-> MonthName varchar(100)
-> );
Query OK, 0 rows affected (0.63 sec)

샘플 데이터 삽입

INSERT 명령을 사용해 테이블에 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values('JFMA');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('JMA');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('JDN');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('JFOSA');
Query OK, 1 row affected (0.19 sec)

전체 데이터 조회

SELECT 문으로 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

출력 결과

+-----------+
| MonthName |
+-----------+
| JFMA |
| JMA |
| JDN |
| JFOSA |
+-----------+
4 rows in set (0.00 sec)

LIKE 연산자로 문자열 매칭하기

이제 LIKE 연산자와 와일드카드 %를 활용해 'J'로 시작하고 중간에 'M'이 포함된 문자열을 검색하는 쿼리를 실행해 보겠습니다.

mysql> select *from DemoTable WHERE MonthName LIKE '%J%M%';

출력 결과

+-----------+
| MonthName |
+-----------+
| JFMA |
| JMA |
+-----------+
2 rows in set (0.00 sec)

위 결과에서 볼 수 있듯이 '%J%M%' 패턴은 'J'로 시작하고 이후 어느 위치든 'M'이 포함된 값인 JFMAJMA만 반환했습니다.

LIKE 연산자 와일드카드 정리

  • %: 0개 이상의 임의의 문자와 일치합니다. 예를 들어 '%J%'는 문자열 내 어디든 'J'가 포함되면 일치합니다.
  • _(언더스코어): 정확히 한 개의 임의의 문자와 일치합니다. 예를 들어 'J_A'는 'J'로 시작하고 세 번째 글자가 'A'인 3글자 문자열과 일치합니다.

대소문자 구분 여부는 MySQL의 collation(문자셋 정렬 규칙) 설정에 따라 달라지므로, 대소문자를 엄격하게 구분해야 한다면 BINARY 키워드나 적절한 collation을 지정하는 것이 좋습니다.