如:查詢zj_standard_item表的name1欄位包含"_("的資料
--以下的查詢語句執行會發現所查詢的資料並不是我們想要資料
select
*from zj_standard_item t where t.name1 like
'%_(%'
;
原因分析
下劃線「_」在oracle中不是單純的表示下劃線的意思,而是表示匹配單一任何字元! 如以上查詢語句就表示"("左邊只要有任意字元都會被查詢到
【解決辦法】
使用 escape() 函式
escape關鍵字經常用於使某些特殊字元,如萬用字元:』%』,』_『轉義為它們原來的字元的意義,被定義的轉義字元通常使用』』,但是也可以使用其他的符號。
例如:上面的條件語句可以寫成where t.name1 like '%_(%'escape 『』;,這個「\」可以改為其他的字元
--使用escape函式將"_"轉為下劃線的含義
select t.name1 from zj_standard_item t where t.name1 like
'%\_(%'
escape '\';
Oracle 模糊查詢like
在這個資訊量劇增的時代,如何幫助使用者從海量資料中檢索到想要的資料,模糊查詢是必不可少的。那麼在 中模糊查詢是如何實現的呢?一 我們可以在where子句中使用like關鍵字來達到oracle模糊查詢的效果 在where子句中,可以對datetime char varchar欄位型別的列用like關鍵...
Oracle中LIKE模糊查詢的使用
like 模糊查詢 佔位符 替代乙個或多個字元 僅替代乙個字元 charlist 字元列中的任何單一字元 charlist 或者 charlist 不在字元列中的任何單一字元 1 查詢 使用者名稱以 s 開頭的員工資訊 select from emp where ename like s 2 查詢 ...
oracle 中模糊查詢 like
oracle中模糊查詢用like與萬用字元 實現 1 字段 like 關鍵字 字段包含 關鍵字 的記錄 2 字段 like 關鍵字 欄位以 關鍵字 開始的記錄 3 字段 like 關鍵字 欄位以 關鍵字 結束的記錄 如果要找出乙個欄位中既有 關鍵字1 又有 關鍵字2 可以用and條件 如果要找出乙個...