Hologres は標準の PostgreSQL 構文をサポートしており、PostgreSQL のパターンマッチングと互換性があります。 パターンマッチングには、次の 3 つのアプローチが利用可能です:
LIKE / NOT LIKE:
%と_を使用した単純なワイルドカードマッチングです。 簡単な文字列比較に最適です。SIMILAR TO / NOT SIMILAR TO: SQL 標準の正規表現マッチングです。 LIKE よりも表現力は豊かですが、POSIX 正規表現ほど強力ではありません。
POSIX 正規表現演算子 (
~、~*、!~、!~*): 完全な POSIX 形式の正規表現マッチングです。 最も強力なオプションで、大文字と小文字を区別するマッチングと区別しないマッチングの両方をサポートします。
以下に示す関数は、PostgreSQL のパターンマッチング関数の一部です。 完全なリファレンスについては、PostgreSQL ドキュメントの「Pattern Matching」をご参照ください。
サポートされている関数
LIKE 演算子
| 演算子 | 説明 | 例 | 結果 |
|---|---|---|---|
LIKE | 文字列がパターンに一致する場合は TRUE を返し、一致しない場合は FALSE を返します。 | 'abc' LIKE 'a%' | t |
NOT LIKE | 文字列がパターンに一致しない場合は TRUE を返し、一致する場合は FALSE を返します。 | 'abc' NOT LIKE 'c' | t |
SIMILAR TO 演算子
| オペレーター | 説明 | 例 | 結果 |
|---|---|---|---|
SIMILAR TO | 文字列が SQL 標準の正規表現パターンに一致する場合は TRUE を返し、一致しない場合は FALSE を返します。 | 'abc' SIMILAR TO '%(b|d)%' | t |
NOT SIMILAR TO | 文字列が SQL 標準の正規表現パターンに一致しない場合は TRUE を返し、一致する場合は FALSE を返します。 | 'abc' NOT SIMILAR TO '(b|c)%' | t |
POSIX 正規表現演算子
Hologres は、POSIX 正規表現マッチングのエイリアスとして rlike を使用します。 次の演算子がサポートされています:
| オペレーター | 説明 | 例 | 結果 |
|---|---|---|---|
~ | 文字列が正規表現に一致する場合は TRUE を返します。 大文字と小文字を区別します。 | 'abc' ~ '(b|d)' | t |
~* | 文字列が正規表現に一致する場合は TRUE を返します。 大文字と小文字を区別しません。 | 'abc' ~* '(B|D)' | t |
!~ | 文字列が正規表現に一致しない場合は TRUE を返します。 大文字と小文字を区別します。 | 'abc' !~ '(b|d)' | f |
!~* | 文字列が正規表現に一致しない場合は TRUE を返します。 大文字と小文字を区別しません。 | 'abc' !~* '(B|D)' | f |