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

MySQL LIKE 연산자로 특정 키워드가 포함된 레코드 조회하기

테이블의 일부 컬럼 값에 특정 키워드가 포함되어 있고, 해당 키워드를 가진 레코드만 조회하고 싶은 경우가 있습니다. 이럴 때 LIKE 연산자를 사용하면 됩니다.

예제 테이블 생성

먼저 예제로 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable750 (Title varchar(200));
Query OK, 0 rows affected (0.69 sec)

데이터 삽입

INSERT 명령을 사용하여 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable750 values('Java and MongoDB,MySQL');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable750 values('MySQL,SQL Server');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable750 values('PL/SQL,Python,MongoDB');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable750 values('MySQL');
Query OK, 1 row affected (0.33 sec)

전체 레코드 확인

SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable750

위 쿼리는 다음과 같은 결과를 출력합니다.

+------------------------+
| Title                  |
+------------------------+
| Java and MongoDB,MySQL |
| MySQL,SQL Server       |
| PL/SQL,Python,MongoDB  |
| MySQL                  |
+------------------------+
4 rows in set (0.00 sec)

키워드 기반으로 레코드 선택하기

이제 키워드를 기준으로 레코드를 선택하는 쿼리를 살펴보겠습니다. 예를 들어 키워드가 "MySQL"이라고 가정하면, LIKE 연산자와 와일드카드(%)를 함께 사용하여 문자열 어느 위치에든 "MySQL"이 포함된 모든 레코드를 조회할 수 있습니다.

mysql> select *from DemoTable750 where Title LIKE '%MySQL%';

위 쿼리는 다음과 같은 결과를 출력합니다.

+------------------------+
| Title                  |
+------------------------+
| Java and MongoDB,MySQL |
| MySQL,SQL Server       |
| MySQL                  |
+------------------------+
3 rows in set (0.00 sec)

결과를 보면 "MySQL"이라는 키워드가 포함된 3개의 레코드만 반환된 것을 확인할 수 있습니다. 참고로 %MySQL%처럼 양쪽에 와일드카드를 붙이면 문자열 중간에 키워드가 있어도 검색되며, MySQL%는 키워드로 시작하는 값, %MySQL은 키워드로 끝나는 값만 조회하게 됩니다.