- カテゴリ:
文字列とバイナリ関数 (マッチング/比較)
ILIKE ANY¶
大文字小文字を区別せずに比較し、1つ以上の指定されたパターンのいずれかと文字列を一致させます。この関数を WHERE 句で使用して、一致するものをフィルターします。大文字と小文字を区別する一致では、代わりに LIKE ANY を使用します。
Tip
検索最適化サービスを使用すると、この関数を呼び出すクエリのパフォーマンスを向上させることができます。詳細については、 検索最適化サービス をご参照ください。
- こちらもご参照ください。
構文¶
<subject> ILIKE ANY (<pattern1> [, <pattern2> ... ] ) [ ESCAPE <escape_char> ]
引数¶
必須:
subject
パターンと比較する文字列です。
pattern#
文字列が比較されるパターンです。少なくとも1つのパターンを指定する必要があります。
オプション:
escape_char
ワイルドカードがワイルドカードとしてではなく、通常の文字として解釈されることを示すために、ワイルドカード文字の前に挿入される文字です。
戻り値¶
BOOLEAN または NULL を返します。一致する場合は TRUE になります。それ以外の場合は、 FALSE を返します。いずれかの引数が NULL の場合は NULL を返します。
使用上の注意¶
パターンマッチに一重引用符やその他の特殊文字を含めるには、 バックスラッシュエスケープシーケンス を使用します。
NULL は NULL と一致しません。つまり、サブジェクトが NULL で、パターンの1つが NULLの場合、それは一致とは見なされません。
NOT 論理演算子を
subject
の前に使用すると、大文字と小文字を区別した比較を実行し、指定されたパターンのいずれかに一致しない場合は TRUE を返します。SQL ワイルドカードは
pattern
でサポートされています。アンダースコア(
_
)は、任意の1文字に一致します。パーセント記号(
%
)は、ゼロ個以上の文字のシーケンスに一致します。
pattern
のワイルドカードには、一致としてsubject
の改行文字(n
)が含まれます。パターンが入力文字列(サブジェクト)全体と一致する場合、パターンは一致すると見なされます。文字列内の任意の場所でシーケンスを照合するには、パターンを
%
(例:%something%
)で開始および終了します。
関数がサブクエリで使用される場合、サブクエリは単一の行を返す必要があります。
例えば、サブクエリが単一の行を返す場合にのみ、次を使用する必要があります。
SELECT ... WHERE x ILIKE ANY (SELECT ...)
照合順序の詳細¶
upper
、 lower
、 trim
照合順序仕様のみがサポートされています。 upper
、 lower
、 trim
の組み合わせもサポートされています(例: upper-trim
と lower-trim
)。ただし、ロケールの組み合わせは除きます(例: en-upper
)。
例¶
いくつかの文字列を含むテーブルを作成します。
CREATE OR REPLACE TABLE ilike_example(name VARCHAR(20));
INSERT INTO ilike_example VALUES
('jane doe'),
('Jane Doe'),
('JANE DOE'),
('John Doe'),
('John Smith');
このクエリは、ワイルドカード(%
)を含むパターンを使用して一致を見つける方法を示しています。
SELECT *
FROM ilike_example
WHERE name ILIKE ANY ('jane%', '%SMITH')
ORDER BY name;
+------------+
| NAME |
|------------|
| JANE DOE |
| Jane Doe |
| John Smith |
| jane doe |
+------------+
ワイルドカード文字をエスケープする方法の例については、 LIKE ANY をご参照ください。