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

MySQL RLIKE/REGEXP 패턴 활용법 – 모음 두 글자로 시작하는 레코드 조회하기

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에서 RLIKEREGEXP와 완전히 동일하게 동작하는 동의어입니다. 또한 기본 콜레이션(collation) 설정에 따라 대소문자가 구분되지 않을 수 있으므로, 대소문자 구분이 필요한 경우 이진(binary) 콜레이션을 사용하는 것이 좋습니다.