자동 완성(autocomplete) 기능을 구현하려면 MySQL에서 LIKE 절을 사용하면 됩니다. 이 글에서는 학교 이름에 포함된 단어들을 기준으로 원하는 레코드를 검색하는 방법을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 데모용 테이블을 생성합니다.
mysql> create table DemoTable
(
SchoolName varchar(100)
);
Query OK, 0 rows affected (0.56 sec)2. 샘플 데이터 삽입하기
insert 명령을 사용해 몇 개의 학교 이름 레코드를 추가합니다.
mysql> insert into DemoTable values('Horce Greeley');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('Conestoga Senior');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Adlai E.Stevenson');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Thomas Jefferson');
Query OK, 1 row affected (0.07 sec)3. 전체 레코드 확인하기
select 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+-------------------+ | SchoolName | +-------------------+ | Horce Greeley | | Conestoga Senior | | Adlai E.Stevenson | | Thomas Jefferson | +-------------------+ 4 rows in set (0.00 sec)
4. 자동 완성용 쿼리 작성하기
자동 완성을 위해 여러 키워드가 동시에 포함된 레코드를 찾으려면 LIKE 조건을 AND로 연결하면 됩니다. 아래 쿼리는 'Con'과 'Sen'이라는 두 단어가 모두 포함된 학교 이름을 검색합니다.
mysql> select *from DemoTable where SchoolName LIKE '%Con%' and SchoolName LIKE '%Sen%';
실행 결과는 다음과 같습니다.
+------------------+ | SchoolName | +------------------+ | Conestoga Senior | +------------------+ 1 row in set (0.00 sec)
정리
이처럼 LIKE 절에 '%' 와일드카드를 사용하고 여러 조건을 AND로 결합하면, 사용자가 입력한 각 단어가 모두 포함된 레코드만 필터링할 수 있습니다. 이 방식은 자동 완성 기능에서 입력값에 따라 후보 목록을 좁혀 가는 데 유용하게 활용됩니다.