WHERE
を変更します このような状態:
WHERE mycolumn LIKE '%\_%' ESCAPE '\'
これは、Oracleがエスケープ文字をサポートする方法の1つです。ここでは、escape
を使用してエスケープ文字を定義します キーワード。詳細については、OracleDocsのこのリンクを参照してください。
'_'
および'%'
LIKE
のワイルドカードです SQLで操作されたステートメント。
_
文字は、(任意の)単一の文字の存在を探します。 columnName LIKE '_abc'
で検索する場合 、'aabc'
を持つ行の結果が表示されます 、'xabc'
、'1abc'
、'#abc'
ただし、'abc'
ではありません 、'abcc'
、'xabcd'
など。
'%'
文字は、0個以上の文字を照合するために使用されます。つまり、columnName LIKE '%abc'
で検索すると 、'abc'
を使用すると結果が得られます 、'aabc'
、'xyzabc'
などですが、'xyzabcd'
はありません 、'xabcdd'
および'abc'
で終わらないその他の文字列 。
あなたの場合、'%_%'
で検索しました 。これにより、その列に1つ以上の文字、つまり任意の文字が含まれるすべての行がその値として提供されます。これが、_
がない場合でもすべての行を取得している理由です。 列の値で。