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

MySQL에서 LIKE와 OR 조건을 활용한 텍스트 검색 쿼리 작성법

MySQL에서 특정 키워드가 포함된 레코드를 여러 개 검색하려면 LIKE 연산자와 OR 연산자를 함께 사용하면 됩니다. LIKE는 패턴 매칭을 통해 문자열을 검색하고, OR은 여러 검색 조건 중 하나라도 만족하는 레코드를 모두 가져옵니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
(
    Subject text
);
Query OK, 0 rows affected (0.86 sec)

2. 레코드 삽입하기

INSERT 명령문을 사용해 테이블에 샘플 데이터를 입력합니다.

mysql> insert into DemoTable values('Introduction to MySQL');
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable values('Deep Dive using Java');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('C in Depth');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Introduction to C++');
Query OK, 1 row affected (0.48 sec)

3. 전체 레코드 확인하기

SELECT 문으로 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+-----------------------+
| Subject               |
+-----------------------+
| Introduction to MySQL |
| Deep Dive using Java  |
| C in Depth            |
| Introduction to C++   |
+-----------------------+
4 rows in set (0.00 sec)

4. LIKE와 OR로 텍스트 검색하기

이제 'MySQL' 또는 'using'이라는 단어가 포함된 레코드를 검색하는 쿼리입니다. 와일드카드(%)를 앞뒤에 붙여 해당 키워드가 문자열 어디에 있든 매칭되도록 합니다.

mysql> select *from DemoTable where Subject LIKE '%MySQL%' OR Subject LIKE '%using%';

위 쿼리의 실행 결과입니다.

+-----------------------+
| Subject               |
+-----------------------+
| Introduction to MySQL |
| Deep Dive using Java  |
+-----------------------+
2 rows in set (0.00 sec)

정리

LIKE 연산자에 % 와일드카드를 사용하면 부분 일치 검색이 가능하며, OR로 조건을 연결하면 여러 키워드를 동시에 검색할 수 있습니다. 이 방식은 소규모 데이터나 간단한 검색 기능 구현에 유용하지만, 대용량 데이터에서는 FULLTEXT 인덱스나 전문 검색(Full-Text Search) 기능을 활용하는 것이 성능 면에서 더 효율적입니다.