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

MySQL LIKE 연산자로 키워드 기반 검색 시스템 만들기 – 결과 표시 방법 완벽 가이드

키워드를 기준으로 검색 결과를 표시하려면 MySQL의 LIKE 연산자를 사용하면 됩니다. LIKE 연산자는 특정 문자열 패턴이 포함된 데이터를 찾아주는 강력한 도구로, 간단한 검색 기능을 구현할 때 매우 유용합니다.

LIKE 연산자 기본 문법

다음은 LIKE 연산자를 사용하여 특정 키워드가 포함된 레코드를 조회하는 기본 문법입니다.

select * from yourTableName where yourColumnName LIKE '%yourValue%';

여기서 %는 와일드카드 문자로, 앞뒤에 어떤 문자열이 와도 상관없다는 의미입니다. 즉, '%Look%'처럼 작성하면 컬럼 값 어디든 'Look'이라는 문자열이 포함된 모든 행을 반환합니다.

예제 테이블 생성하기

먼저 실습에 사용할 테이블을 생성하겠습니다.

mysql> create table DemoTable812(Comments text);
Query OK, 0 rows affected (0.61 sec)

샘플 데이터 삽입

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable812 values('Good Looking');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable812 values('Awesome');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable812 values('Looking Gorgeous');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable812 values('Good Luck');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable812 values('Have a nice day');
Query OK, 1 row affected (0.21 sec)

전체 데이터 조회

SELECT 문으로 테이블의 모든 레코드를 확인해 보겠습니다.

mysql> select *from DemoTable812;

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

+------------------+
| Comments         |
+------------------+
| Good Looking     |
| Awesome          |
| Looking Gorgeous |
| Good Luck        |
| Have a nice day  |
+------------------+
5 rows in set (0.00 sec)

LIKE로 키워드 검색 실행하기

이제 'Look'이라는 키워드가 포함된 레코드만 검색하는 쿼리를 실행해 보겠습니다.

mysql> select *from DemoTable812 where Comments LIKE '%Look%';

결과는 다음과 같습니다.

+------------------+
| Comments         |
+------------------+
| Good Looking     |
| Looking Gorgeous |
+------------------+
2 rows in set (0.00 sec)

위 출력에서 볼 수 있듯이, 'Good Looking'과 'Looking Gorgeous' 두 레코드만 반환되었습니다. 두 값 모두 'Look'이라는 문자열을 포함하고 있기 때문입니다.

마무리 및 추가 팁

이처럼 LIKE 연산자와 % 와일드카드를 조합하면 손쉽게 키워드 기반 검색 기능을 구현할 수 있습니다. 실무에서 활용할 때 참고할 만한 추가 정보는 다음과 같습니다.

  • 앞부분 일치 검색: LIKE 'Look%'처럼 작성하면 'Look'으로 시작하는 값만 검색됩니다.
  • 뒷부분 일치 검색: LIKE '%ing'처럼 작성하면 'ing'으로 끝나는 값만 검색됩니다.
  • 대소문자 구분: MySQL의 기본 콜레이션(예: utf8mb4_general_ci)에서는 대소문자를 구분하지 않지만, 이진 콜레이션을 사용하면 구분할 수 있습니다.
  • 성능 고려사항: %value% 형태의 검색은 인덱스를 활용하지 못해 대용량 데이터에서는 느려질 수 있습니다. 이 경우 FULLTEXT 인덱스나 Elasticsearch 같은 전문 검색 엔진 도입을 고려하는 것이 좋습니다.

간단한 프로젝트나 소규모 데이터에는 LIKE 연산자만으로도 충분히 효율적인 검색 시스템을 만들 수 있습니다.