パターンマッチング演算子
説明
パターンマッチング演算子は、文字型データの比較に使用されます。
演算子の紹介
| 演算子 | 機能 | 例 |
|---|---|---|
<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条件は、パターンマッチングを含むテストを指定します。等価比較演算子(=)は、1つの文字値を別の文字値に正確にマッチさせますが、LIKE条件は、最初の値の中で2番目の値に指定されたパターンを検索することにより、1つの文字値の一部を別の文字値とマッチさせます。
構文は以下の通りです:
<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に変換します。