- カテゴリ:
文字列とバイナリ関数 (マッチング/比較)
LIKE ALL¶
1つ以上のパターンとの比較に基づいて、大文字と小文字を区別して文字列を照合します。
操作は LIKE
に似ています。入力文字列がすべてのパターンに一致する場合にのみ、これは入力文字列を返します。
- こちらもご参照ください:
構文¶
<subject> LIKE ALL (<pattern1> [, <pattern2> ... ] ) [ ESCAPE <escape_char> ]
引数¶
必須:
subject
パターンと比較する文字列です。
pattern#
文字列が比較されるパターンです。少なくとも1つのパターンを指定する必要があります。
オプション:
escape_char
ワイルドカードがワイルドカードとしてではなく、通常の文字として解釈されることを示すために、ワイルドカード文字の前に挿入される文字です。
戻り値¶
戻り値のデータ型はVARCHARです。
使用上の注意¶
SQL ワイルドカードは
pattern
でサポートされています。アンダースコア(
_
)は、任意の1文字に一致します。パーセント記号(
%
)は、ゼロ個以上の文字のシーケンスに一致します。
pattern
のワイルドカードには、一致としてsubject
の改行文字(\n
)が含まれます。パターンが入力文字列(サブジェクト)全体と一致する場合、パターンは一致すると見なされます。文字列内の任意の場所でシーケンスを照合するには、パターンを
%
(例:%something%
)で開始および終了します。NULL は NULL と一致しません。つまり、サブジェクトが NULL で、パターンの1つが NULLの場合、それは一致とは見なされません。
関数がサブクエリで使用される場合、サブクエリは単一の行を返す必要があります。
例えば、サブクエリが単一の行を返す場合にのみ、次を使用する必要があります。
SELECT ... WHERE x LIKE ALL (SELECT ...)
例¶
いくつかの文字列を含むテーブルを作成します。
CREATE OR REPLACE TABLE like_all_example(subject varchar(20));
INSERT INTO like_all_example VALUES
('John Dddoe'),
('Joe Doe'),
('John_do%wn'),
('Joe down'),
('Tom Doe'),
('Tim down'),
(null);
このクエリは、ワイルドカード(%
)を含むパターンを使用して一致を見つける方法を示しています。
SELECT *
FROM like_all_example
WHERE subject LIKE ALL ('%Jo%oe%','J%e')
ORDER BY subject;
+-------------+
| SUBJECT |
|-------------|
| Joe Doe |
| John Dddoe |
+-------------+
このクエリは、成功する結果を得るためにすべてのパターンがどのように一致する必要があるかを示しています。
SELECT *
FROM like_all_example
WHERE subject LIKE ALL ('%Jo%oe%','J%n')
ORDER BY subject;
+---------+
| SUBJECT |
|---------|
+---------+
このクエリは、エスケープ文字を使用して、通常はワイルドカード(_
および %
)である文字をリテラルとして扱うことを指定する方法を示しています。
SELECT *
FROM like_all_example
WHERE subject LIKE ALL ('%J%h%^_do%', 'J%^%wn') ESCAPE '^'
ORDER BY subject;
+------------+
| SUBJECT |
|------------|
| John_do%wn |
+------------+