SQL Server - 具有特殊字符

时间:2017-03-24 10:27:55

标签: sql-server sql-like sql-query-store

我们希望根据最终用户可以使用哪些结果,在搜索查询中允许所有以下特殊字符。所以我们在一列本身输入所有以下值,现在想用Like运算符运行sql查询。

  • @#$%^&安培; *()-_ = + [] {} \ |;':?",/<>

我寻找所有可能的解决方案,如ESCAPE字符,方括号和&等等。 但它只适用于

从表中选择* 标题如'!@#$%[^]' ESCAPE' \'

只要我添加'&',就不会返回任何行。

似乎我在这里遗漏了一些东西。

2 个答案:

答案 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 '%]%';
  

请注意]必须单独进行,以便它不会结束正则表达式。