我们希望允许所有以下特殊字符在搜索查询的基础上,结果应该提供给最终用户。因此,我们在一个列中输入以下所有值,现在希望使用Like操作符运行sql查询。
我寻找所有可能的解决方案,如转义字符,方括号等。但它只有在
选择*从表格中选择像'!@#$%^‘转义’这样的标题
一旦我添加'&',就不会返回任何行。
我好像漏掉了什么东西。
发布于 2017-03-24 12:33:27
使用regular expression的简单方法如下所示:
SELECT * FROM <YourTable>
WHERE <YourColumn> LIKE '%[!@#$%^&*()-_=+{}\|;'':",./[<>?]%' OR <YourColumn> LIKE '%]%';注意,]必须分开处理,这样它才不会结束正则表达式。
发布于 2017-03-24 11:16:18
您可能想试试这个:
declare @table table( title varchar(100))
insert into @table values ('!@#$%^&*()-_=+[]{}\|;'':",./<>?')
select *
from @table
where title like '!@#$%^&%' escape '\'
select *
from @table
where title like '!@#$%^&*()-_=+\[]%' escape '\'
select *
from @table
where title like '!@#$%^&*()-_=+\[]{}\\|%' escape '\'
select *
from @table
where title like '!@#$%^&*()-_=+\[]{}\\|;'':",./<>?%' escape '\'确保避开开始的方括号和反斜杠。此外,不需要将^字符放在括号之间。
https://stackoverflow.com/questions/42997052
复制相似问题