提问人:Shashimk 提问时间:11/14/2023 最后编辑:CharliefaceShashimk 更新时间:11/14/2023 访问量:115
传递特殊字符 [duplicate] 时,无法使用 like 运算符在 sql 查询中搜索特殊字符 ( _ , [, %)
Unable to search using like operator for special characters ( _ , [, %) in sql Query when passing special characters [duplicate]
问:
我遇到了 sql server 的问题,当我们使用 like 运算符并使用 dapper 查询以下特殊字符时:_(下划线)、%(百分位数)、方括号 ([)
请考虑以下情况:
案例 1。当我们搜索 %(百分位数)和 _(下划线)时,查询将检索所有记录,而不是匹配的记录。
在 SQL 事件探查器中生成的查询:
where @Name like N'%%%', for percentile
where @Name like N'%_%', for underscore
案例 2.当我们搜索“[”(方括号)时,查询不会返回任何记录。
在 SQL 事件探查器中生成的查询:
where @Name like N'%[%', for square bracket
代码:
var query =$"select * from TableName where 1=1";
DynamicParameters dynamicParameters = new DynamicParameters();
dynamicParameters.Add("Name", "%" + inputRequest.Name + "%");
if (!string.IsNullOrEmpty(inputRequest.Name))
query += $" And CP.Name like @Name";
如何修改 SQL 搜索查询以处理这些特殊字符(%、_、[)并检索预期结果?
答: 暂无答案
评论
LIKE '%' + @Name + '%'
%
CHARINDEX(@Name , CP.Name) > 0