Oracle做字串的模糊比對中保留符號有'_'以及'%',
而假若欲搜尋的字串是包含這些符號,如'my_blog'。
因為'_'是保留字元,表示一個字元,所以若SQL寫成
select * from table a where a.column like 'my_blog'
則搜尋出來的字串可以是 'myablog' 'mybblog' 'mycblog' ...等等。
這時候我們就需要跳脫字元,希望若碰到保留符號卻不希望他被當成保留符號看待。
應使用關鍵字Escape改寫成
select * from table a where a.column like 'my\_blog' escape '\'
其中關鍵字escape後的跳脫字元可以自訂,即上述SQL等同
select * from table a where a.column like 'my*_blog' escape '*'
沒有留言:
張貼留言