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

MySQL에서 두 개의 WHERE 절 대신 LIKE 연산자로 여러 조건 검색하기

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 연산자로 연결하면 원하는 결과를 정확하게 조회할 수 있습니다. 와일드카드(%)를 활용하면 부분 일치 검색도 간편하게 처리할 수 있습니다.