SQL服务器查询中的LIKE运算符可以非常有用地匹配自定义模式。然而,有时需要从模式中转义一些字符或子字符串,例如“%”、“_”、“[”和“]”等符号。
实际上我正在使用parametrized queries但它不能解决LIKE情况,因为例如搜索
在转义此类模式时,应考虑哪些字符集?是否可以提供一个C#函数来执行安全转义?
实际上我正在使用parametrized queries但它不能解决LIKE情况,因为例如搜索
_
将意味着“任何字符”。在转义此类模式时,应考虑哪些字符集?是否可以提供一个C#函数来执行安全转义?
LIKE
转义和值转义是明显不同的,不能仅通过参数传递来解决。DECLARE @p VARCHAR(10) = '[[]]'; SELECT 1 WHERE ']' LIKE @p
将返回空值;至少需要像DECLARE @p VARCHAR(10) = '[\[\]]'; SELECT 1 WHERE ']' LIKE @p ESCAPE '\'
这样的代码,即使参数化也是如此。 - Jeroen Mostert