likeを使用してストアドプロシージャでアイテムをフィルタリングしようとしています。列はvarchar(15)です。フィルタリングしようとしているアイテムの名前には角かっこが含まれています。
例: WC[R]S123456
。
私がやった場合、LIKE 'WC[R]S123456'
それは何も返しません。
ESCAPE
でキーワードを使用する方法についていくつかの情報を見つけましLIKE
たが、角かっこを通常の文字列として扱うために使用する方法がわかりません。
likeを使用してストアドプロシージャでアイテムをフィルタリングしようとしています。列はvarchar(15)です。フィルタリングしようとしているアイテムの名前には角かっこが含まれています。
例: WC[R]S123456
。
私がやった場合、LIKE 'WC[R]S123456'
それは何も返しません。
ESCAPE
でキーワードを使用する方法についていくつかの情報を見つけましLIKE
たが、角かっこを通常の文字列として扱うために使用する方法がわかりません。
LIKE 'WC[[]R]S123456'
また
LIKE 'WC\[R]S123456' ESCAPE '\'
動作するはずです。
リテラルに一致させたいとしましょうits[brac]et
。
]
とペアになっている場合にのみ特別な意味を持つため、 をエスケープする必要はありません[
。
[
したがって、問題を解決するにはエスケープで十分です。[
に置き換えることで エスケープできます[[]
。
これが私が実際に使用したものです:
like 'WC![R]S123456' ESCAPE '!'
ESCAPEキーワードは、通常はワイルドカードである%や_などの特殊文字を検索する必要がある場合に使用されます。ESCAPEを指定すると、SQLは文字通り%と_を検索します。
SELECT columns FROM table WHERE
column LIKE '%[[]SQL Server Driver]%'
-- or
SELECT columns FROM table WHERE
column LIKE '%\[SQL Server Driver]%' ESCAPE '\'
「\」またはキーボードの別の文字の代わりに、キーボードにない特殊文字を使用することもできます。ユースケースによっては、ユーザー入力を誤ってエスケープ文字として使用したくない場合に、これが必要になる場合があります。