簡體   English   中英

查詢返回不同的結果

[英]Query returns different results

我有2個查詢(我相信他們必須返回相同數量的行:)):

1。

SELECT NAME
FROM myDataBase.myTable
WHERE CONTAINS(NAME, 'ABC')

2。

SELECT NAME
FROM myDataBase.myTable
WHERE NAME LIKE '%ABC%'

但實際上我有以下結果(例如):

對於(1.)查詢

  • 第一次執行(1.)查詢: 980行受影響
  • 第二次執行(1.)查詢: 996行受影響
  • ...
  • N執行(1.)查詢: 1000行受影響

並為(2.)查詢

  • 第一次執行(2.)查詢: 1000行受影響

所以我的問題是:為什么會發生? 我做錯了什么? :)

PS我是Sql Server的新手和它的功能,所以我理解這是我缺乏理論,沒有找到任何關於這個問題,所以決定問

CONTAINS是一個全文謂詞,根據當前語言的斷字規則在全文索引中查找單詞“ABC”。

LIKE掃描列。

所以LIKE會找到'XABCX',而CONTAINS則不會。

CONTAINS使用全文搜索引擎。

完全有可能在該查詢的運行之間重建FTS索引。 如果是這種情況,那么我會期待你看到的結果。

因此,要么不使用FTS,要么將FTS人口計划更改為更可接受的程度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM