我有2个查询(我相信他们必须返回相同数量的行:)):
1
SELECT NAME
FROM myDataBase.myTable
WHERE CONTAINS(NAME, 'ABC')
2
SELECT NAME
FROM myDataBase.myTable
WHERE NAME LIKE '%ABC%'
但实际上我有以下结果(例如):
用于(1.)查询
和(2.)查询
所以我的问题是:为什么会发生?我做错了什么? :)
P.S。我是Sql Server的新手和它的功能,所以我理解这是我缺乏理论,没有发现任何关于这个问题,所以决定问一下
答案 0 :(得分:2)
CONTAINS是一个全文谓词,根据当前语言的断字规则在全文索引中查找单词“ABC”。
LIKE扫描列。
所以LIKE会找到'XABCX',而CONTAINS则不会。
答案 1 :(得分:1)
CONTAINS使用全文搜索引擎。
完全有可能在该查询的运行之间重建FTS索引。如果是这种情况,那么我会期待你看到的结果。
因此,要么不使用FTS,要么将FTS人口计划更改为更可接受的程度。