최종 수정: 에
패턴 매칭 연산자
설명
패턴 매칭 연산자는 문자형 데이터를 비교하는 데 사용됩니다.
연산자 소개
| 연산자 | 기능 | 예제 |
|---|---|---|
<char1> [NOT] LIKE <char2> | <char1>이 패턴 <char2>와 일치하면 TRUE입니다(NOT이 지정된 경우에는 일치하지 않으면 TRUE입니다). <char2>에서 % 문자는 문자가 없거나 여러 개인 경우에 일치합니다(빈 문자열 제외). _ 문자는 임의의 단일 문자와 일치합니다. 와일드카드 문자 앞에 이스케이프 문자가 있으면 해당 와일드카드 문자는 리터럴 문자로 처리됩니다. | SELECT 'ABCD' LIKE '%C_' |
<char1> [NOT] {REGEXP | RLIKE} <char2> | <char1>이 패턴 <char2>와 일치하면 TRUE입니다(NOT이 지정된 경우에는 일치하지 않으면 TRUE입니다). 정규식의 구체적인 규칙은 뒤에 나오는 REGEXP 절을 참조하세요. | SELECT 'ABCD' REGEXP 'A.*D' |
LIKE
LIKE 조건은 패턴 매칭을 통한 검사를 지정합니다. 동등 비교 연산자(=)는 한 문자 값과 다른 문자 값이 정확히 일치하는지 비교하는 반면, LIKE 조건은 첫 번째 값에서 두 번째 값에 지정된 패턴을 검색하여 문자 값의 일부가 다른 문자 값과 일치하는지 확인합니다.
구문은 다음과 같습니다.
<char1> [ NOT ] LIKE <char2> [ ESCAPE 'char_escape' ]
각 항목의 의미는 다음과 같습니다.
char1은 문자 컬럼과 같은 문자 표현식으로, 검색 값이라고 합니다.char2는 문자 표현식으로, 일반적으로 문자열 리터럴이며 패턴이라고 합니다.char_escape(선택 사항)는 문자 표현식이며, ascii 인코딩에서 길이가 1인 문자여야 합니다. 이 항목으로 이스케이프 문자를 정의할 수 있으며, char_escape를 제공하지 않으면 기본값인 ' \ '가 이스케이프 문자로 사용됩니다.
두 문자 표현식(char1, char2)은 CHAR, VARCHAR 또는 STRING 데이터 타입 중 어느 것이든 사용할 수 있습니다. 두 표현식의 데이터 타입이 다르면 Doris는 모두 VARCHAR 또는 STRING으로 변환합니다.
패턴에는 다음과 같은 특수 패턴 매칭 문자를 포함할 수 있습니다.
- 패턴의 밑줄(
_)은 값에서 정확히 한 문자와 일치합니다. - 패턴의 퍼센트 기호(
%)는 값에 문자가 없거나 여러 개인 경우에 일치할 수 있습니다. 패턴%는 NULL과 일치할 수 없습니다.
예제
select "%a" like "\%_";
결과는 다음과 같습니다. "%"는 특수 문자이므로 올바르게 매칭하려면 "%"로 이스케이프해야 합니다.
+-----------------+
| "%a" like "\%_" |
+-----------------+
| 1 |
+-----------------+
select "%a" like "a%_" ESCAPE "a";
이전 예제와 다른 점은 "a"를 이스케이프 문자로 지정했다는 것입니다.
+----------------------------+
| "%a" like "a%_" ESCAPE "a" |
+----------------------------+
| 1 |
+----------------------------+
REGEXP (RLIKE)
REGEXP는 LIKE 조건과 유사하지만, LIKE가 단순한 패턴 매칭을 수행하는 것과 달리 정규식 매칭을 수행합니다. 이 조건은 문자로 정의된 입력 문자 집합을 사용하여 문자열을 평가합니다.
구문은 다음과 같습니다.
<char1> [ NOT ] { REGEXP | RLIKE } <char2>
각 항목의 의미는 다음과 같습니다.
char1은 문자 컬럼과 같은 문자 표현식으로, 검색 값이라고 합니다.char2는 문자 표현식으로, 일반적으로 문자열 리터럴이며 패턴이라고 합니다.
두 문자 표현식(char1, char2)은 CHAR, VARCHAR 또는 STRING 데이터 타입 중 어느 것이든 사용할 수 있습니다. 두 표현식의 데이터 타입이 다르면 Doris는 모두 VARCHAR 또는 STRING으로 변환합니다.