メインコンテンツまでスキップ
に最終更新

MULTI_MATCH_ANY

説明​

<haystack> が <patterns> 内のいずれかの正規表現に一致するかを判定します。デフォルトでは大文字と小文字を区別します。0 を返し、NULL は返しません。これは、いずれかの引数が NULL の場合も同じです。

構文​

MULTI_MATCH_ANY(<haystack>, <patterns>)

パラメータ​

パラメータ説明
<haystack>入力文字列。型は STRING です。
<patterns>正規表現の配列。型は ARRAY<STRING> です。各パターン要素には NULL 以外の文字列を指定してください。

戻り値​

戻り値の型は TINYINT です。いずれかの正規表現が一致すると 1、それ以外の場合は 0 を返します。0 を返すのは、パターン配列が空の場合と、いずれかの引数が NULL の場合です。

この関数は Hyperscan/VectorScan 正規表現エンジンを使用します。無効なパターンやサポートされていないパターンを指定すると、エラーが発生します。定数の入力文字列と、定数ではないパターン配列の列は組み合わせられません。この組み合わせを指定すると、引数エラーが発生します。

例​

SELECT multi_match_any('Hello, World!', ['hello', '!', 'world']) AS matched;
1
SELECT multi_match_any('abc', ['A', 'bcd']) AS matched;
0

正規表現は、文字どおりの部分文字列を検索するのではなく、パターンによる照合を行います。

SELECT multi_match_any('abc123', ['[0-9]+', '^xyz']) AS matched;
1
SELECT multi_match_any('abc', CAST([] AS ARRAY<STRING>)) AS empty_patterns,
multi_match_any(CAST(NULL AS STRING), ['a']) AS null_text,
multi_match_any('abc', CAST(NULL AS ARRAY<STRING>)) AS null_patterns;
0    0    0

キーワード​

MULTI_MATCH, MATCH, ANY