MySQL RLIKE/REGEXP 패턴이란?
MySQL에서는 RLIKE 또는 REGEXP 연산자를 사용해 정규 표현식(Regular Expression) 기반의 패턴 매칭으로 데이터를 조회할 수 있습니다. 예를 들어, 특정 열(column)의 값이 모음 두 글자로 시작하는 레코드만 추출하고 싶다면 다음과 같은 구문을 사용하면 됩니다.
select *from yourTableName where yourColumnName RLIKE '^[aeiouAEIOU][aeiouAEIOU]';여기서 ^는 문자열의 시작 위치를 의미하고, 대괄호 안의 [aeiouAEIOU]는 소문자 또는 대문자 모음 한 글자를 나타냅니다. 이 패턴이 연속으로 두 번 반복되기 때문에, 결과적으로 "모음 두 글자로 시작하는 값"만 필터링됩니다.
1. 샘플 테이블 생성
먼저 실습에 사용할 테이블을 생성합니다.
mysql> create table DemoTable664(CityName varchar(100));
Query OK, 0 rows affected (0.89 sec)2. 데이터 삽입
INSERT 명령어를 사용해 도시 이름 몇 개를 입력합니다.
mysql> insert into DemoTable664 values('Springfield');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable664 values('Austin');
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable664 values('Franklin');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable664 values('OAKLAND');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable664 values('Anchorage');
Query OK, 1 row affected (0.18 sec)3. 전체 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable664;실행 결과는 다음과 같습니다.
+-------------+
| CityName |
+-------------+
| Springfield |
| Austin |
| Franklin |
| OAKLAND |
| Anchorage |
+-------------+
5 rows in set (0.00 sec)
4. RLIKE 패턴으로 조건 조회
이제 RLIKE/REGEXP 패턴을 적용하여, 도시 이름이 모음 두 글자로 시작하는 레코드만 조회해 보겠습니다.
mysql> select *from DemoTable664 where CityName RLIKE '^[aeiouAEIOU][aeiouAEIOU]';실행 결과는 다음과 같습니다.
+----------+
| CityName |
+----------+
| Austin |
| OAKLAND |
+----------+
2 rows in set (0.00 sec)
결과 분석 및 참고 사항
'Austin'은 'Au', 'OAKLAND'는 'OA'로 각각 모음 두 글자로 시작하기 때문에 조회 결과에 포함되었습니다. 반면 'Springfield'(Sp), 'Franklin'(Fr), 'Anchorage'(An)는 처음 두 글자가 모두 모음이 아니므로 결과에서 제외되었습니다.
참고로 MySQL에서 RLIKE는 REGEXP와 완전히 동일하게 동작하는 동의어입니다. 또한 기본 콜레이션(collation) 설정에 따라 대소문자가 구분되지 않을 수 있으므로, 대소문자 구분이 필요한 경우 이진(binary) 콜레이션을 사용하는 것이 좋습니다.