키워드를 기준으로 검색 결과를 표시하려면 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 연산자만으로도 충분히 효율적인 검색 시스템을 만들 수 있습니다.