カテゴリ:

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

ENDSWITH

最初の式が2番目の式で終わる場合、 TRUE を返します。両方の式は、テキスト式またはバイナリ式でなければなりません。

Tip

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

構文

ENDSWITH( <expr1> , <expr2> )
Copy

引数

expr1

検索する文字列です。

expr2

expr1 の最後に検索する文字列です。

戻り値

BOOLEAN または NULL を返します。

  • expr2expr1 で終わる場合、 TRUE を返します。

  • expr2expr1 で終わらない場合、 FALSE を返します。

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

照合順序の詳細

The collation specifications of all input arguments must be compatible.

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

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

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

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

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

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

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 ENDSWITH(s, 'te');
Copy
+-------+
| S     |
|-------|
| latte |
+-------+

照合での ENDSWITH の使用

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

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