MySQL에서 LIKE 연산자를 사용할 때, 검색 결과가 특정 문자로 시작하는 값만 조회되도록 제한해야 하는 경우가 자주 있습니다. 이 글에서는 실제 예제를 통해 여러 개의 시작 문자 조건을 적용하는 방법을 단계별로 살펴보겠습니다.
1. 샘플 테이블 생성
먼저 실습에 사용할 테이블을 생성합니다.
mysql> create table DemoTable
(
FirstName varchar(40)
);
Query OK, 0 rows affected (0.52 sec)2. 테스트 데이터 삽입
INSERT 문을 사용하여 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable values('Adam');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.09 sec)3. 저장된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+-----------+ |FirstName | +-----------+ | John | | Adam | | David | | Mike | | Sam | +-----------+ 5 rows in set (0.00 sec)
4. LIKE 연산자로 특정 문자 조건 적용하기
이름이 'D' 또는 'S'로 시작하는 레코드만 조회하려면, 와일드카드 %를 활용하여 아래와 같은 쿼리를 작성할 수 있습니다.
mysql> select *from DemoTable where FirstName LIKE 'D%' or FirstName LIKE 'S%';
실행 결과는 다음과 같습니다.
+-----------+ | FirstName | +-----------+ | David | | Sam | +-----------+ 2 rows in set (0.00 sec)
핵심 포인트 정리
'D%'처럼 패턴 앞에 원하는 문자를 쓰고 뒤에 %를 붙이면, 해당 문자로 시작하는 값만 매칭됩니다. 여러 개의 시작 문자를 허용하려면 위 예제처럼 OR 조건으로 연결하면 됩니다. 만약 조건이 많아진다면 REGEXP '^(D|S)' 정규식 방식을 사용하면 더 간결하게 처리할 수 있습니다.