隐藏

SQLServer like模糊查询中有特殊字符导致查询不到数据问题解决

发布:2021/5/14 11:07:30作者:管理员 来源:本站 浏览次数:1548

问题描述:

使用SQLServer执行 select * from users where username like '%123[曹操]';

语句进行模糊匹配时没有数据。
问题解决:

SQL语句中含有特殊符号,特殊字符一般都是通配符,需要进行转义处理。

特殊字符:[(中括号),%(百分号),_ (下划线)^尖号),!(感叹号)。

解决方法:

1、用方括号[]转义字符

        处理格式:[特殊字符]。

        实例:

select * from users where username like '%123[[]曹操]';

2、使用escape 转义字符

        说明:在语句中,当转义符置于特殊字符之前时,该通配符就解释为普通字符。

        处理格式:'转义符 特殊字符' escape '转义符'。

        实例:

    select * from users where username like '%123\[曹操]' escape '\';
    select * from users where username like '%123/[曹操]' escape '/';
    select * from users where username like '%123|[曹操]' escape '|';
    select * from users where username like '%123^[曹操]' escape '^';//不建议
    select * from users where username like '%123![曹操]' escape '!';//不建议