這是第一篇關於技術的。
幹這行一年了 ,以前就是懶 不愛學習,工作中用不到的。。基本都不怎麼會
隨意的一張表裡做一次 select * from like 的查詢,舉個例子吧。
user表裡 username欄位有 三行資料
uesename
'abcdef'
'_bcdef'
'cbcdef'
要求模糊查詢出 _bc的username值
select * from uesr where username like 『_bc』 查詢出來的結果並不理想
因為在條件裡的_bc被oracle當做了萬用字元
(like 字句中 有兩個萬用字元,"%"代替乙個或者多個字元,「_"代替乙個或者多個字元)
所以查詢出的資料 是會把上述三條資料都會查詢出
那這裡 「_」 下劃線被當做了萬用字元,
可以使用「\」轉義字元
所以這樣寫
select * from uesr where username like 『\_bc』 escape '\';
就可以查詢出想要的資料了
escape 把「\」標識為轉義字元,而"\"把"_"轉義為字元,而非其原意(萬用字元)。
那如果 上列的第二條資料時這樣的呢?
"_\bcdefg"
如果還是按照上述的查詢
會出現轉衣服之後字元確實或非法的錯(這個自己實現就好)
做開發時間長了之後就會知道 雙寫轉義字元就可以實現了
select * from uesr where username like 『_\\bc』 escape '\';
字串出現"%" 按上面的處理方法就可以實現!
Oracle 模糊查詢優化
模糊查詢是資料庫查詢中經常用到的,一般常用的格式如下 1 字段 like 關鍵字 字段包含 關鍵字 的記錄 即使在目標字段建立索引也不會走索引,速度最慢 2 字段 like 關鍵字 欄位以 關鍵字 開始的記錄 可以使用到在目標字段建立的公升序索引 3 字段 like 關鍵字 欄位以 關鍵字 結束的記...
Oracle 模糊查詢
在where子句中,可以對datetime char varchar欄位型別的列用like子句配合萬用字元選取那些 很像.的資料記錄,以下是可使用的萬用字元 零或者多個字元 單一任何字元 下劃線 特殊字元 在某一範圍內的字元,如 0 9 或者 aeth 不在某範圍內的字元,如 0 9 或者 aeth...
oracle 模糊查詢
oracle10g以上支援正規表示式的函式主要有下面四個 1,regexp like 與like的功能相似 2,regexp instr 與instr的功能相似 3,regexp substr 與substr的功能相似 4,regexp replace 與replace的功能相似 posix 正規表...