SQLでLIKE句の検索文字として「30%」などワイルドカード文字が含まれてる場合、%が検索文字列として認識されなかったため、文字列として検索するためにはどうしたらよいか調べた結果を備忘録として書きたいと思います。
参考
【参考URL】LIKE (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/t-sql/language-elements/like-transact-sql?view=sql-server-ver16
【SQL】LIKE句
https://qiita.com/chihiro/items/46da8571d4cf37d3123c
目次
ワイルドカード
パターンマッチングに使用される特殊な文字または文字列のこと
文字 | 概要 |
---|---|
%(パーセント記号) | 0 個以上の文字で構成される任意の文字列 |
_(アンダースコア) | 任意の 1 文字 |
[ ] | [](かっこ)のなかで指定した任意の1文字 |
[^ ] | [](かっこ)のなかで指定した以外の任意の1文字 |
エスケープ処理
ワイルドカードに使われる文字を検索文字として変換する処理
[\(バックスラッシュ)]が使われる
例えば、以下のLIKE句で検索すると「30%」の前方一致として検索することができる
LIKE '30\%%'
また、ESCAPE句を使うことで「\」以外にもエスケース処理の文字として指定することができる
LIKE '30!%%' ESCAPE '!'
ワイルドカードとの組み合わせ
LIKE '30[%]%'