MySQL에서 두 개의 WHERE 절을 사용할 필요는 없습니다. 하나의 WHERE 절 안에서 LIKE 연산자와 AND 연산자를 조합하면 두 개 이상의 조건을 손쉽게 지정할 수 있습니다.
예제 테이블 생성하기
LIKE 연산자의 활용 방법을 이해하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다.
mysql> create table WhereDemo
-> (
-> Id int,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.56 sec)
레코드 삽입하기
이제 insert 명령을 사용하여 테이블에 레코드를 삽입합니다. 쿼리는 다음과 같습니다.
mysql> insert into WhereDemo values(101,'Maxwell');
Query OK, 1 row affected (0.14 sec)
mysql> insert into WhereDemo values(110,'David');
Query OK, 1 row affected (0.21 sec)
mysql> insert into WhereDemo values(1000,'Carol');
Query OK, 1 row affected (0.18 sec)
mysql> insert into WhereDemo values(1100,'Bob');
Query OK, 1 row affected (0.47 sec)
mysql> insert into WhereDemo values(115,'Sam');
Query OK, 1 row affected (0.23 sec)
전체 레코드 조회하기
select 문을 사용하여 테이블에 저장된 모든 레코드를 확인해 보겠습니다.
mysql> select *from WhereDemo;
실행 결과는 다음과 같습니다.
+------+---------+
| Id | Name |
+------+---------+
| 101 | Maxwell |
| 110 | David |
| 1000 | Carol |
| 1100 | Bob |
| 115 | Sam |
+------+---------+
5 rows in set (0.00 sec)
LIKE 연산자로 두 조건 동시에 적용하기
다음은 LIKE 연산자를 활용한 실제 예제입니다. Id 컬럼과 Name 컬럼에 각각 LIKE 조건을 적용한 뒤, AND 연산자로 두 조건을 연결합니다.
mysql> select *from WhereDemo t1 where t1.Id LIKE '%1100%' AND t1.Name LIKE '%Bob%';
실행 결과는 다음과 같습니다.
+------+------+
| Id | Name |
+------+------+
| 1100 | Bob |
+------+------+
1 row in set (0.00 sec)
이처럼 WHERE 절을 여러 개 나누어 작성하는 대신, 하나의 WHERE 절 안에서 각 컬럼에 대한 LIKE 조건을 AND 연산자로 연결하면 원하는 결과를 정확하게 조회할 수 있습니다. 와일드카드(%)를 활용하면 부분 일치 검색도 간편하게 처리할 수 있습니다.