カテゴリ:

文字列とバイナリ関数 (マッチング/比較)

CONTAINS

expr1expr2 が含まれる場合は、trueを返します。両方の式は、テキスト式またはバイナリ式でなければなりません。

Tip

検索最適化サービスを使用すると、この関数を呼び出すクエリのパフォーマンスを向上させることができます。詳細については、 検索最適化サービス をご参照ください。

構文

CONTAINS( <expr1> , <expr2> )
Copy

引数

expr1

検索する文字列です。

expr2

検索する文字列です。

戻り値

BOOLEAN または NULL を返します。

  • expr2expr1 内にあれば、 TRUE を返します。

  • expr2expr1 内に見つからない場合、 FALSE を返します。

  • いずれかの入力式が NULL の場合、 NULL を返します。

使用上の注意

文字列を複数の指定されたパターンに一致させる比較では、以下の関数を使用できます。

照合順序の詳細

The collation specifications of all input arguments must be compatible.

この関数は、次の照合仕様をサポートしません。

  • pi (句読点は区別しない)。

  • cs-ai (大文字と小文字は区別、アクセント記号は区別しない)。

これらの例では、 CONTAINS 関数を使用しています。

列の値に文字列が含まれているかどうかの判別

文字列値を含む単一列を含むテーブルを作成します。

CREATE OR REPLACE TABLE strings_test (s VARCHAR);

INSERT INTO strings_test values
  ('coffee'),
  ('ice tea'),
  ('latte'),
  ('tea'),
  (NULL);

SELECT * from strings_test;
Copy
+---------+
| S       |
|---------|
| coffee  |
| ice tea |
| latte   |
| tea     |
| NULL    |
+---------+

s の値に文字列 te を含まれているかどうかを判定します。

SELECT * FROM strings_test WHERE CONTAINS(s, 'te');
Copy
+---------+
| S       |
|---------|
| ice tea |
| latte   |
| tea     |
+---------+

照合での CONTAINS の使用

以下の例では、 CONTAINS は照合仕様が異なる同じ引数値に対して異なる結果を返しています。

SELECT CONTAINS(COLLATE('ñ', 'en-ci-ai'), 'n'),
       CONTAINS(COLLATE('ñ', 'es-ci-ai'), 'n');
Copy
+-----------------------------------------+-----------------------------------------+
| CONTAINS(COLLATE('Ñ', 'EN-CI-AI'), 'N') | CONTAINS(COLLATE('Ñ', 'ES-CI-AI'), 'N') |
|-----------------------------------------+-----------------------------------------|
| True                                    | False                                   |
+-----------------------------------------+-----------------------------------------+