问题描述
如果查询的关键字是数据库的通配符 “_”或者“%”应该如何处理?请各位指点一下,十分感谢
解决方案
SQL Server查询过程中,单引号 ' 是特殊字符,所以在查询的时候要转换成双单引号 '' 。在like操作还有以下特殊字符:下划线_,百分号%,方括号[],尖号^。其用途如下:下划线:用于代替一个任意字符(相当于正则表达式中的 ? )百分号:用于代替任意数目的任意字符(相当于正则表达式中的 * )方括号:用于转义(事实上只有左方括号用于转义,右方括号使用最近优先原则匹配最近的左方括号)尖号:用于排除一些字符进行匹配(这个与正则表达式中的一样)以下是一些匹配的举例,需要说明的是,只有like操作才有这些特殊字符,=操作是没有的。a_b... a[_]b%a%b... a[%]b%a[b... a[[]b%a]b... a]b%a[]b... a[[]]b%a[^]b... a[[][^]]b%a[^^]b... a[[][^][^]]b%在实际进行处理的时候,对于=操作,我们一般只需要如此替换:' -> ''对于like操作,需要进行以下替换(注意顺序也很重要)[ -> [[] (这个必须是第一个替换的!!)% -> [%] (这里%是指希望匹配的字符本身包括的%而不是专门用于匹配的通配符)_ -> [_]^ -> [^]
解决方案二:
http://zhengran-01-sina-com.iteye.com/blog/1040938 参见此文。
时间: 2024-11-03 06:01:11