我们希望根据最终用户可以使用哪些结果,在搜索查询中允许所有以下特殊字符。所以我们在一列本身输入所有以下值,现在想用Like运算符运行sql查询。
我寻找所有可能的解决方案,如ESCAPE字符,方括号和&等等。 但它只适用于
从表中选择* 标题如'!@#$%[^]' ESCAPE' \'
只要我添加'&',就不会返回任何行。
似乎我在这里遗漏了一些东西。
答案 0 :(得分:0)
您可能想尝试一下:
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 '\'
确保从开口方括号和反斜杠中取出。此外,没有必要将^字符放在括号之间。
答案 1 :(得分:0)
使用regular expression
尝试这种简单方法,如下所示:
SELECT * FROM <YourTable>
WHERE <YourColumn> LIKE '%[!@#$%^&*()-_=+{}\|;'':",./[<>?]%' OR <YourColumn> LIKE '%]%';
请注意]必须单独进行,以便它不会结束正则表达式。