LIKE節のJDBCエスケープ構文

SQLのLIKE節では%(パーセント記号)と_(アンダースコア)はメタ文字と扱われます。JDBCはこれ等の文字をリテラル的に解釈させるための構文を用意しています。LIKE式の直後に続くJDBCの節では、エスケープ文字を指定することができます。

構文

WHERE 文字式 [ NOT ] LIKE
    ワイルドカード付文字式
    { ESCAPE 'エスケープ文字' }

-- "%"という文字で始まる全ての行を見つける。
SELECT a FROM tabA WHERE a LIKE '$%%' {escape '$'}
-- "_"という文字で終わる全ての行を見つける。
SELECT a FROM tabA WHERE a LIKE '%=_' {escape '='}
注: LIKEパターンが動的なパラメータの?であった場合、?をエスケープ文字とすることはできません。

言語によっては、複数の照合単位が一文字を表すことがあります。(ここで言う照合単位とは16ビット文字のことです。)エスケープ節が正しく働くためには、エスケープ文字は単一の照合単位でなければなりません。

JDBCの中括弧を使わずに、エスケープ文字の並びをLIKEに使うこともできます。詳細は真偽式を参照してください。

関連資料
呼び出し文のJDBCエスケープキーワード
JDBCエスケープ構文
fnキーワードを使ったJDBCエスケープ構文
外部結合のJDBCエスケープ構文
時刻書式のJDBCエスケープ構文
日付書式のJDBCエスケープ構文
タイムスタンプ書式のJDBCエスケープ構文