MySQL에서 부분 일치 값 선택하기
MySQL에서 문자열이 특정 키워드와 부분적으로만 일치하는 레코드를 조회하려면 LIKE 연산자를 사용하면 됩니다. 와일드카드 문자인 %를 활용하면 검색어가 포함된 모든 데이터를 손쉽게 찾을 수 있습니다.
1. 예제 테이블 생성
먼저 실습에 사용할 테이블을 만들어 보겠습니다.
mysql> create table DemoTable806(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName varchar(100),
StudentSubject varchar(100)
);
Query OK, 0 rows affected (0.57 sec)
2. 샘플 데이터 삽입
INSERT 명령으로 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable806(StudentName,StudentSubject) values('Chris','Java in Depth With Data Structure');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable806(StudentName,StudentSubject) values('Robert','Introduction to MySQL');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable806(StudentName,StudentSubject) values('Bob','C++ in Depth With Data Structure And Algorithm');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable806(StudentName,StudentSubject) values('Adam','Introduction to MongoDB');
Query OK, 1 row affected (0.11 sec)3. 전체 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable806;
실행 결과는 다음과 같습니다.
+-----------+-------------+------------------------------------------------+
| StudentId | StudentName | StudentSubject |
+-----------+-------------+------------------------------------------------+
| 1 | Chris | Java in Depth With Data Structure |
| 2 | Robert | Introduction to MySQL |
| 3 | Bob | C++ in Depth With Data Structure And Algorithm |
| 4 | Adam | Introduction to MongoDB |
+-----------+-------------+------------------------------------------------+
4 rows in set (0.00 sec)
4. LIKE 연산자로 부분 일치 조회
이제 과목명에 'Depth'라는 단어가 포함된 레코드만 조회하는 쿼리입니다. 검색할 키워드 앞뒤에 %를 붙여 해당 단어가 어디에 위치하든 매칭되도록 합니다.
mysql> select *from DemoTable806 where StudentSubject LIKE '%Depth%';
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+-----------+-------------+------------------------------------------------+
| StudentId | StudentName | StudentSubject |
+-----------+-------------+------------------------------------------------+
| 1 | Chris | Java in Depth With Data Structure |
| 3 | Bob | C++ in Depth With Data Structure And Algorithm |
+-----------+-------------+------------------------------------------------+
2 rows in set (0.00 sec)
LIKE 패턴 정리
'%Depth%'– 'Depth'가 문자열 어디든 포함된 경우 매칭'Depth%'– 'Depth'로 시작하는 문자열 매칭'%Depth'– 'Depth'로 끝나는 문자열 매칭
이처럼 LIKE 연산자와 % 와일드카드를 조합하면 MySQL에서 원하는 키워드가 포함된 데이터를 간편하게 검색할 수 있습니다.