パターンマッチング演算子
説明
パターンマッチング演算子は文字型データを比較するために使用されます。
演算子の紹介
| 演算子 | 機能 | 例 |
|---|---|---|
<char1> [NOT] LIKE <char2> | <char1>がパターン<char2>にマッチしない場合、TRUEになります。<char2>では、文字%は任意の0個または複数の文字(空文字列を除く)にマッチします。文字_は任意の1文字にマッチします。ワイルドカード文字の前にエスケープ文字がある場合、それはリテラル文字として扱われます。 | SELECT 'ABCD' LIKE '%C_' |
<char1> [NOT] {REGEXP | RLIKE} <char2> | <char1>がパターン<char2>にマッチしない場合、TRUEになります。正規表現の具体的なルールについては、後続のREGEXPセクションを参照してください。 | SELECT 'ABCD' REGEXP 'A.*D' |
LIKE
LIKE条件はパターンマッチングを含むテストを指定します。等価比較演算子(=)は一つの文字値を別の文字値に正確にマッチさせますが、LIKE条件は最初の値内で2番目の値で指定されたパターンを検索することによって、一つの文字値の一部を別の文字値とマッチさせます。
構文は以下の通りです:
<char1> [ NOT ] LIKE <char2>
ここで:
char1は文字式(文字列カラムなど)で、検索値として知られています。char2は文字式で、通常は文字列リテラルであり、パターンとして知られています。
両方の文字式(char1、char2)は、CHAR、VARCHAR、またはSTRINGデータ型のいずれかにできます。それらが異なる場合、DorisはそれらすべてをVARCHARまたはSTRINGに変換します。
パターンには特別なパターンマッチング文字を含めることができます:
- パターン内のアンダースコア(
_)は、値内の正確に1文字にマッチします。 - パターン内のパーセント記号(
%)は、値内の0文字または複数文字にマッチできます。パターン%はNULLにマッチできません。
REGEXP (RLIKE)
REGEXPはLIKE条件に似ていますが、REGEXPはLIKEによって実行される単純なパターンマッチングではなく、正規表現マッチングを実行する点で異なります。この条件は、文字列を評価するために文字によって定義された入力文字のセットを使用します。
構文は以下の通りです:
<char1> [ NOT ] { REGEXP | RLIKE } <char2>
ここで:
char1は文字式(文字列カラムなど)で、検索値として知られています。char2は文字式で、通常は文字列リテラルであり、パターンとして知られています。
両方の文字式(char1、char2)は、CHAR、VARCHAR、またはSTRINGデータ型のいずれでも使用できます。それらが異なる場合、DorisはそれらをすべてVARCHARまたはSTRINGに変換します。