當編寫where語句中有like條件時,如果引數中需要匹配 % 和_ 等特殊字元時,必須進行處理,否則系統會將其當成萬用字元處理。
sqlserver:
有兩種方案
二:先將引數中的 \ 替換成 \\, [替換成\[ , % 替換成 \%, _ 替換成 \_;
然後在每個需要like查詢的字段後加上escape '\'。
注:sqlserver2005測試通過
oracle只能既改引數,又改sql語句。
先將引數中的 \ 替換成 \\, % 替換成 \%, _ 替換成 \_;
然後在每個需要like查詢的字段後加上escape chr(92 using nchar_cs),組成的sql語句形如:
select * from a where name like '%\%%' escape chr(92 using nchar_cs) or addr like '%\_%' escape chr(92 using nchar_cs);
在oracle 9i中必須寫escape chr(92 using nchar_cs)這麼長一段,oracle 10g中可以簡寫成escape '\'
注:oracle9i、10g測試通過
mysql的情況與oracle類似,也需要用escape語句。但是經測試不能用escape '\',所以用escape '/'
先將引數中 / 替換成 //,% 替換成 /%,_ 替換成 /_,\ 替換成 /\;
然後在每個需要like查詢的字段後加上escape '/'。
注:mysql 5.5測試通過
access不能用escape,但與sqlserver類似,只需將引數中的 [ 替換成 [, % 替換成 [%], _ 替換成 [_]即可。
注:access2003測試通過
mybatis 模糊查詢特殊字元的處理
把模糊查詢的檢索的關鍵字對特殊字元進行轉換如 param str 需要轉換的字串 return 返回模糊查詢的字串 public static string tolikestr string str return str str 欄位即你想那個轉換 typicalcase.settrade code...
cad模糊查詢符號 SQL 模糊查詢之特殊字元
1.sql like對時間查詢 時間格式的資料為各種各樣,不方便查詢。在使用like模糊查詢時,先將資料轉換為統一的格式,這樣在使用like查詢時就方便多了。2.sql like對特殊字元 在sql查詢過程中,動態sql,需將字元資料的單引號 改為兩個單引號 而在模糊查詢中,需使用萬用字元來匹配資料...
sql處理特殊字元
我們都知道sql server查詢過程中,單引號 是特殊字元,所以在查詢的時候要轉換成雙單引號 但這只是特殊字元的乙個,在實際專案中,發現對於like操作還有以下特殊字元 下劃線 百分號 方括號 以及尖號 其用途如下 下劃線 用於代替乙個任意字元 相當於正規表示式中的 百分號 用於代替任意數目的任意...