MySQL에서는 LIKE 연산자와 와일드카드(WILDCARDS)를 함께 사용하면 하나의 문자열 안에서 원하는 패턴을 가진 문자열을 손쉽게 찾을 수 있습니다.
기본 문법
LIKE specific_pattern
여기서 specific_pattern은 다른 문자열 내에서 찾고자 하는 문자열의 패턴을 의미합니다.
주요 와일드카드
- % : 0개 이상의 임의의 문자열과 일치합니다.
- _ : 정확히 한 개의 임의의 문자와 일치합니다.
예제
학생들의 이름이 저장된 'student'라는 테이블이 있다고 가정해 보겠습니다. 이름에 'av'라는 패턴이 포함된 모든 학생의 정보를 조회하고 싶다면, 아래와 같은 MySQL 쿼리를 사용하면 됩니다.
mysql> Select * from Student Where Name LIKE '%av%'; +------+--------+---------+-----------+ | Id | Name | Address | Subject | +------+--------+---------+-----------+ | 1 | Gaurav | Delhi | Computers | | 2 | Aarav | Mumbai | History | | 20 | Gaurav | Jaipur | Computers | +------+--------+---------+-----------+ 3 rows in set (0.00 sec)
결과 분석
위 예제에서 '%' 기호는 LIKE 연산자와 함께 사용되는 와일드카드입니다. '%av%' 패턴은 이름 어느 위치든 'av'가 포함되어 있으면 모두 매칭됩니다. 따라서 Gaurav, Aarav처럼 이름 중간이나 끝에 'av'가 들어간 학생들이 모두 검색 결과에 포함된 것을 확인할 수 있습니다.
만약 패턴의 위치를 더 구체적으로 지정하고 싶다면 와일드카드의 배치를 조정하면 됩니다. 예를 들어 LIKE 'G%'는 'G'로 시작하는 이름을, LIKE '%v'는 'v'로 끝나는 이름을 찾습니다.