SQL模糊查詢時特殊字元的處理方式總結

2021-06-03 18:13:32 字數 895 閱讀 4105

當編寫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操作還有以下特殊字元 下劃線 百分號 方括號 以及尖號 其用途如下 下劃線 用於代替乙個任意字元 相當於正規表示式中的 百分號 用於代替任意數目的任意...