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

MySQL LIKE 연산자를 특정 문자로 시작하도록 제한하는 방법

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)' 정규식 방식을 사용하면 더 간결하게 처리할 수 있습니다.