「Oracle」likeとescape文で検索文字列をエスケープするサンプル
環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production
PL/SQL Release 11.2.0.1.0 – Production
構文
select * from テーブル名
where 列名 like '(エスケープ文字%or_)値(エスケープ文字%or_)’ escape 'エスケープ文字’
like文の後にescapeを使用すると指定した文字の後はエスケープされます。
検索したい文字列に%や_が存在する場合に使用します。
使用例
1.USER_INFOテーブルの確認
USERID USERNAME AGE 11 to01 23 12 user02 24 13 tokyo 25 14 user05 35 15 osaka06 40
2.テーブルの列名「username」に対して条件文字「_」にlikeとescapeを指定します。
SQL構文
select * from user_info where username like '%\_%' ESCAPE '\';
実行結果
USERID USERNAME AGE 15 osa_ka06 40
3.テーブルの列名「username」に対して条件文字「%」にlikeとescapeを指定します。
SQL構文
select * from user_info where username like '\%%' ESCAPE '\';
実行結果
USERID USERNAME AGE 13 %tokyo 25