メインコンテンツまでスキップ

パターンマッチング演算子

説明

パターンマッチング演算子は、文字型データを比較するために使用されます。

演算子の紹介

演算子機能
<char1> [NOT] LIKE <char2><char1>がパターン<char2>にマッチしない場合、TRUEになります。<char2>では、文字%は任意のゼロ個以上の文字(空文字列を除く)にマッチします。文字_は任意の単一文字にマッチします。ワイルドカード文字の前にエスケープ文字がある場合、それはリテラル文字として扱われます。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>

Where:

  • char1 は文字式(文字列カラムなど)で、検索値として知られています。
  • char2 は文字式で、通常は文字列リテラルで、パターンとして知られています。

両方の文字式(char1char2)は、CHAR、VARCHAR、またはSTRINGデータ型のいずれかを使用できます。それらが異なる場合、DorisはそれらすべてをVARCHARまたはSTRINGに変換します。

パターンには特別なパターンマッチング文字を含めることができます:

  • パターン内のアンダースコア(_)は、値内の正確に1つの文字にマッチします。
  • パターン内のパーセント記号(%)は、値内の0個または複数の文字にマッチできます。パターン%はNULLにマッチできません。

REGEXP (RLIKE)

REGEXPはLIKE条件に似ていますが、REGEXPはLIKEが実行する単純なパターンマッチングではなく、正規表現マッチングを実行する点が異なります。この条件は、文字列を評価するために文字によって定義された入力文字のセットを使用します。

構文は以下の通りです:

<char1> [ NOT ] { REGEXP | RLIKE } <char2>

ここで:

  • char1は文字式(文字列カラムなど)で、検索値として知られています。
  • char2は文字式で、通常は文字列リテラルであり、パターンとして知られています。

両方の文字式(char1char2)は、CHAR、VARCHAR、またはSTRINGデータ型のいずれかになります。それらが異なる場合、DorisはそれらすべてをVARCHARまたはSTRINGに変換します。