oracle使用like匹配特殊字元解決辦法

2021-07-27 00:16:50 字數 828 閱讀 1655

想要匹配出所有mc帶有 "_" 的資料,

select * from lm where mc like '%_%' ;
這是一種錯誤的寫法,

因為  o

racle會預設把  '_' 作為乙個可以匹配任意乙個字元的萬用字元。

正確寫法:

select * from lm where mc like '%\_%'escape '\';
語法:like '%\_%' escape'\', 其中第乙個 '\'

代表轉義緊跟後一位的特殊字元(多個特殊字元需要寫多個'\'進行轉義)

escape關鍵字 代表查詢時過濾掉 '\' 這個字元。

也就是說先用 '\'轉義特殊字元,查詢的時候再用 escape 關鍵字過濾掉 '\'。

由於 '\'在程式中也是特殊字元,所以也需要進行轉義。

string sql = "select * from lm where mc like '%\\_%' escape '\\'";
以此類推,其他特殊字元也可以使用 '\' 進行轉義。

SQL使用LIKE匹配

與任意單字元匹配 與包含乙個或多個字元的字串匹配 與特定範圍 例如,a f 或特定集 例如,abcdef 中的任意單字元匹配。與特定範圍 例如,a f 或特定集 例如,abcdef 之外的任意單字元匹配。a like mc 將搜尋以字母 mc 開頭的所有字串 如 mcbadden b like in...

like 模糊匹配查詢

select from titles where title like computer title含有computer字樣的就滿足 like title書名含s字樣 select from titles where title like s title含有s字樣的就滿足 select au lna...

like的模糊匹配

a 以a結尾的資料 a 以a開頭的資料 a 含有a的資料 a 三位且中間字母是a的 a 兩位且結尾字母是a的 a 兩位且開頭字母是a的 表示任意 0 個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號 表示。表示任意單個字元。匹配單個任意字元,它常用來限制表示式的字元長度...