sql like 萬用字元及特殊字元的模糊查詢處理

2021-08-15 12:00:18 字數 893 閱讀 2913

當編寫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測試通過

SQL Like 萬用字元及特殊用法Escape

摘自 匹配零個及多個任意字元 與任意單字元匹配 匹配乙個範圍 排除乙個範圍 symbol meaning like 5 5 like n nlike a cdf a,b,c,d,or f like acdf a,c,d,or f like like like abc d abc d and abc ...

SQL LIKE 萬用字元

萬用字元 說明 與任意單字元匹配 與包含乙個或多個字元的字串匹配 與特定範圍 例如,a f 或特定集 例如,abcdef 中的任意單字元匹配。與特定範圍 例如,a f 或特定集 例如,abcdef 之外的任意單字元匹配。例子 where firstname like im 可以找到所有三個字母的 以...

SQL LIKE 萬用字元

sql like 萬用字元 2007 4 29 17 54 00 by yangbo 萬用字元 說明 與任意單字元匹配 與包含乙個或多個字元的字串匹配 與特定範圍 例如,a f 或特定集 例如,abcdef 中的任意單字元匹配。與特定範圍 例如,a f 或特定集 例如,abcdef 之外的任意單字元...