LIKE 探索条件の構文は次のとおりです。
expression [ NOT ] LIKE pattern
expression 検索される文字列。
pattern expression を検索するためのパターン。
LIKE 探索条件は、expression を pattern に一致させようとし、TRUE、FALSE、または UNKNOWN と評価されます。expression が pattern に一致すれば、探索条件は TRUE と評価されます (NOT が指定されない場合)。expression または pattern が NULL 値の場合、探索条件は UNKNOWN と評価されます。
NOT キーワードを使用すると探索条件の意味が逆になりますが、UNKNOWN は変わりません。
expression と pattern は、CHAR 文字列として解釈されます。pattern には、次ののサポートされているワイルドカードをいくつでも含めることができます。
ワイルドカード | 一致するもの |
---|---|
_ (アンダースコア) | 任意の 1 文字。たとえば、a_ は ab と ac に一致しますが、a には一致しません。
|
% (パーセント記号) | 0 個以上の文字からなる任意の文字列。たとえば、bl% は bl と bla に一致します。
|
[] | 指定範囲内、または一連の指定文字の任意の 1 文字。たとえば、T[oi]m は Tom または Tim に一致します。
|
[^] | 指定範囲、または一連の指定文字に含まれない任意の 1 文字。たとえば、M[^c] は Mb と Md に一致しますが、Mc には一致しません。
|
次の探索条件では、文字 a で始まり、末尾から 2 つ目の文字が b のカラム名のローがすべて TRUE になります。
SELECT * FROM table-name WHERE column-name LIKE 'a%b_' |
検索対象 | 例 | その他の情報 |
---|---|---|
一連の文字 | LIKE 'sm[iy]th' |
検索対象の一連の文字は、角カッコ内にリストして指定します。この例では、探索条件は smith と smyth に一致します。 |
範囲内の文字 | LIKE '[a-r]ough' |
検索対象の文字範囲は、角カッコ内に範囲を書いて指定します。範囲の始めと終わりの間にハイフンを書きます。この例では、探索条件は bough と rough に一致しますが、tough には一致しません。 文字列の範囲 [a-z] は「a 以上 z 以下」と解釈され、データベースの照合では、以上と以下の演算子が実行されます。 範囲は、まず小さい方の値、次に大きい方の値を指定してください。たとえば、 |
文字範囲と一連の文字の結合 | ... LIKE '[a-rt]ough' |
角カッコ内で、文字範囲と一連の文字を結合できます。この例では、 パターン [a-rt] は、a ~ r の範囲に含まれる文字または t と一致する 1 文字と解釈されます。 |
範囲外の 1 文字 | ... LIKE '[^a-r]ough' |
脱字記号 (^) は、検索から除外する文字範囲を指定します。この例では、 脱字記号は、この記号以外のカッコ内の内容を否定します。たとえば、角カッコ [^a-rt] は、a ~ r の範囲に含まれない文字かつ t ではない 1 文字と解釈されます。 |
後続ブランクのある探索パターン | '90 ' 、'90[ ]' 、'90_' |
探索パターンに後続ブランクが含まれる場合、データベースサーバーではブランクが含まれる値に対してのみパターンが一致します。文字列へのブランクの埋め込みは行われません。たとえば、検索されている値が幅 3 文字以上の CHAR 型または VARCHAR 型カラムにあっても、'90 '、'90[ ]'、'90_' のパターンは、式 '90 ' には一致しますが、式 '90' には一致しません。 |
角カッコ内の任意の 1 文字は、その文字を指しています。たとえば、[a]
は、文字 a に一致します。[^]
は脱字記号、[%]
はパーセント記号 (パーセント記号は、このコンテキストではワイルドカードになりません)、[_]
はアンダースコア文字に一致します。また、[[]
は文字 [ に一致します。
パターン [a-]
は、文字 a または - に一致します。
パターン []
は、一致する文字がないのでローを返すことはありません。
パターン [
または [abp-q
は、閉じカッコが欠けているため構文エラーを返します。
角カッコ内ではワイルドカードは使用できません。パターン [a%b]
は a、%、または b のいずれかを検出します。
脱字記号を使用しても、カッコ内の先頭になければ範囲を否定できません。パターン [a^b]
は a、^、または b のいずれかを検出します。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |