MySQL에서 RLIKE 연산자는 문자열 안에서 특정 패턴(정규 표현식)을 검색하는 쿼리를 작성할 때 매우 유용합니다. 와일드카드를 함께 사용하면 복잡한 검색 조건도 간결하게 표현할 수 있어 작업 효율이 크게 향상됩니다. RLIKE 연산자와 함께 사용할 수 있는 대표적인 와일드카드는 다음과 같습니다.
1. ^(캐럿) – 문자열의 시작
^ 기호는 문자열의 시작을 의미합니다. RLIKE 연산자와 함께 사용하면, ^ 뒤에 작성한 특정 문자열로 시작하는 패턴을 가진 데이터를 찾습니다.
예제
mysql> Select Id, Name from Student WHERE Name RLIKE '^H'; +------+---------+ | id | Name | +------+---------+ | 15 | Harshit | +------+---------+ 1 row in set (0.00 sec)
위 예제는 Name 컬럼의 값이 'H'로 시작하는 학생만 조회하는 쿼리입니다.
2. $(달러) – 문자열의 끝
$ 기호는 문자열의 끝을 의미합니다. RLIKE 연산자와 함께 사용하면, $ 앞에 작성한 특정 문자열로 끝나는 패턴을 가진 데이터를 찾습니다.
예제
mysql> Select Id, Name from Student WHERE Name RLIKE 'v$'; +------+--------+ | Id | Name | +------+--------+ | 1 | Gaurav | | 2 | Aarav | | 20 | Gaurav | +------+--------+ 3 rows in set (0.00 sec)
위 예제는 이름이 'v'로 끝나는 모든 학생을 조회합니다.
3. |(파이프) – OR(또는) 조건
| 기호는 OR 조건을 의미합니다. RLIKE 연산자와 함께 사용하면, | 로 구분된 여러 부분 문자열 중 하나라도 포함하는 데이터를 모두 찾습니다.
예제
mysql> Select Id, Name from Student WHERE Name RLIKE 'Gaurav|raj'; +------+---------+ | Id | Name | +------+---------+ | 1 | Gaurav | | 20 | Gaurav | | 21 | Yashraj | +------+---------+ 3 rows in set (0.00 sec)
위 예제는 이름에 'Gaurav' 또는 'raj'가 포함된 학생들을 조회합니다.
마무리
이 외에도 RLIKE(정규 표현식)에서는 임의의 한 문자를 뜻하는 ., 0회 이상 반복을 뜻하는 *, 1회 이상 반복을 뜻하는 +, 대괄호 안의 문자 집합을 뜻하는 [] 등 다양한 정규 표현식 요소를 활용할 수 있습니다. 이러한 와일드카드를 적절히 조합하면 일반 LIKE 연산자보다 훨씬 유연하고 강력한 패턴 검색이 가능하므로, 상황에 맞게 활용해 보시기 바랍니다.