データベースによって、エスケープが必要な記号の検索は異なります。
今回はOracleの場合を説明します。
LIKE検索する時のキーワードである '%' と '_' をLIKE検索で使いたい場合は、
escapeを使用します。
1 2 3 4 5 6 7 8 | -- hogeを含む文字列を探したい場合 WHERE hogehoge LIKE '%hoge%' -- hoge%を含む文字列を探したい場合 WHERE hogehoge LIKE '%hoge\%%' escape '\' -- hoge_を含む文字列を探したい場合 WHERE hogehoge LIKE '%hoge\_%' escape '\' |
実行例のサンプル
1 2 3 4 5 | -- %を含むレコードを抽出 SELECT * FROM USER WHERE NAME LIKE "%\%%" escape '\' -- T%Tを含むレコードを抽出 SELECT * FROM USER WHERE NAME LIKE "%TEST\%TARO%" escape '\' |