sql-server – 转义括号[在一个CONTAINS()子句中?

前端之家收集整理的这篇文章主要介绍了sql-server – 转义括号[在一个CONTAINS()子句中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在全文sql Server中转义一个括号contains()查询?我已经尝试了以下所有功能,其中没有一个工作:
CONTAINS(crev.RawText,'arg[0]')
CONTAINS(crev.RawText,'arg[[0]]')
CONTAINS(crev.RawText,'arg\[0\]')

使用双引号可以工作,但它会强制整个搜索成为一个短语,这是多个单词查询的showstopper.

CONTAINS(crev.RawText,'"arg[0]"')

我真的想做的只是摆脱支架,但我似乎不会这样做

解决方法

你不必逃避[在全文搜索中没有特别的意义].如果您确实需要搜索完全匹配,则可以使用“”标记.

此外,您可以在单引号内使用多个“”:

CONTAINS('"word1" or "word2" or "word3"')

这也可以:

CONTAINS('"word1" and "word2" and "word3"')

双引号内的任何内容都将被视为确切的文字.因此,如果我要对AdventureWorks中的Production.ProductDescription表的Description字段进行搜索,我可以使用

CONTAINS('shifting and "on or off-road"')

并且它会找到匹配的词移动,也有短语“在或越野”.

唯一的特殊符号是〜,可以用来代替NEAR命令.

CONTAINS('shifting ~ smooth')

是相同的

CONTAINS('shifting NEAR smooth')

并且将找到匹配的词匹配,并且平滑相互靠近.

猜你在找的MsSQL相关文章