https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP
9.7. Pattern Matching
9.7. Pattern Matching 9.7.1. LIKE 9.7.2. SIMILAR TO Regular Expressions 9.7.3. POSIX Regular Expressions There are three separate approaches to pattern …
www.postgresql.org
[Postgre Document]
9.7.1. LIKE
LIKE 연산자는 SQL 표준에 따라 패턴을 기반으로 문자열을 비교하기 위해 사용됩니다.
LIKE 패턴은 다음과 같은 구문으로 사용될 수 있습니다.
string LIKE pattern [ESCAPE escape-character]
string NOT LIKE pattern [ESCAPE escape-character]
패턴에 퍼센트 기호(%) 또는 밑줄 기호(_)이 포함되어 있지 않은 경우, 패턴은 문자열 자체를 나타냅니다. 이 경우, LIKE 연산자는 등호 연산자와 같은 역할을 합니다. 패턴 내의 밑줄 기호는 어떤 단일 문자와도 일치하며, 퍼센트 기호는 0개 이상의 문자열과 일치합니다.
LIKE 패턴 매칭은 항상 전체 문자열을 대상으로 수행됩니다. 따라서 문자열 내에서 어느 위치에서도 일치하는 시퀀스를 찾으려면 패턴은 반드시 퍼센트 기호로 시작하고 끝나야 합니다.
밑줄 기호나 퍼센트 기호를 다른 문자와 구분하여 일치시키기 위해, 패턴 내에서 해당 문자 앞에 ESCAPE 문자를 사용해야 합니다. 기본 ESCAPE 문자는 백슬래시(backslash)입니다. 다른 ESCAPE 문자를 선택하여 사용할 수도 있습니다. ESCAPE 절을 사용하여 ESCAPE 문자를 선택할 수 있습니다. ESCAPE 문자 자체와 일치시키기 위해 ESCAPE 문자를 두 번 작성해야 합니다.
Note
standard_conforming_strings가 비활성화되어 있는 경우, 리터럴 문자열 상수에서 작성하는 백슬래시는 2개로 작성해야 합니다.
ESCAPE 메커니즘을 비활성화하려면 ESCAPE ''을 작성할 수도 있습니다. 이렇게 하면 패턴 내의 밑줄 기호와 퍼센트 기호의 특별한 의미를 해제할 수 없으므로 사용할 수 없게 됩니다.
SQL 표준에 따르면, ESCAPE을 생략하면 ESCAPE 문자가 없음을 의미합니다(기본적으로 백슬래시가 선택되는 것이 아닌). 또한, ESCAPE 값의 길이가 0인 경우 허용되지 않습니다. 이런 측면에서 PostgreSQL의 동작은 약간 비표준적입니다.
대소문자를 구분하지 않고 일치시키기 위해 LIKE 대신 ILIKE 키워드를 사용할 수 있습니다. 이는 SQL 표준에는 포함되어 있지 않지만 PostgreSQL의 확장 기능입니다.
+ ^@로 시작하는 연산자와 해당 starts_with() 함수도 사용할 수 있는데, 이는 문자열의 시작 부분만 일치시키는 경우에 유용합니다.
'Database' 카테고리의 다른 글
[SQL]Window 함수 First_value/Last_value 활용하기 (0) | 2023.08.26 |
---|---|
[SQL] LEFT, REPLACE, SUBSTRING (0) | 2023.08.21 |
[SQL] NULLIF, NVL(COALESCE) 함수 (0) | 2023.08.19 |
[SQL] Count 함수, Sequel vs SQL (0) | 2023.08.19 |
Apache Parquet(파케이) (0) | 2023.08.14 |