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

MySQL에서 LIKE 연산자와 와일드카드를 활용해 특정 패턴의 문자열을 검색하는 방법

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'로 끝나는 이름을 찾습니다.