sqlserver like 两个字段如何优化


 LEFT JOIN LR_DJ_PurchaseInvoice t63 on t63.F_PNos like '%'+t.F_DocumentNumber+'%'

像这种like 两边都是字段,添加了全文索引后,怎么使用contains 方法,能走全文索引。

t63.F_PNos上创建全文索引,这个表达式使用全文索引contains(t63.F_PNos, t.F_DocumentNumber)

  • 这篇博客: SQLServer like模糊查询中有特殊字符导致查询不到数据问题解决中的 问题解决: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 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 '!';//不建议