想要匹配出所有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 個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號 表示。表示任意單個字元。匹配單個任意字元,它常用來限制表示式的字元長度...