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

MySQL에서 LIKE와 OR 연산자를 결합해 여러 패턴 검색하기

MySQL에서는 LIKE 연산자와 OR 연산자를 조합하면, 하나의 쿼리에서 여러 개의 패턴 조건을 동시에 검색할 수 있습니다. 이는 IN 절처럼 여러 값을 나열하면서 부분 일치(패턴 매칭)까지 처리해야 할 때 유용하게 활용됩니다.

먼저 실습용 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
-> (
-> SubjectTitle text
-> );
Query OK, 0 rows affected (0.68 sec)

INSERT 명령을 사용해 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable values('Introduction To MySQL');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable values('Java in Depth');
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable values('Coding with Python');
Query OK, 1 row affected (0.54 sec)

mysql> insert into DemoTable values('C++ in Depth');
Query OK, 1 row affected (0.17 sec)

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

mysql> select *from DemoTable;

출력 결과

위 쿼리는 다음과 같은 결과를 반환합니다.

+-----------------------+
| SubjectTitle |
+-----------------------+
| Introduction To MySQL |
| Java in Depth |
| Coding with Python |
| C++ in Depth |
+-----------------------+
4 rows in set (0.00 sec)

이제 하나의 MySQL 쿼리에서 LIKEOR를 함께 사용하는 방법을 살펴보겠습니다. 아래 쿼리는 제목에 'MySQL'이라는 문자열이 포함되어 있거나, 'C++'로 시작하는 레코드를 모두 조회합니다.

mysql> select *from DemoTable where SubjectTitle LIKE '%MySQL%' OR SubjectTitle LIKE 'C++%';

출력 결과

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

+-----------------------+
| SubjectTitle |
+-----------------------+
| Introduction To MySQL |
| C++ in Depth |
+-----------------------+
2 rows in set (0.00 sec)

이처럼 LIKE 조건을 OR로 연결하면, 와일드카드(%, _)를 활용한 부분 일치 검색을 여러 패턴에 대해 동시에 수행할 수 있습니다. 만약 조건이 많아진다면 REGEXP 연산자를 사용하는 것이 코드를 더 간결하게 만들 수 있는 대안이 될 수 있습니다.