2015-11-01 49 views
0

我有一個varchar(max),我創建了一個全文索引。然後我使用這個查詢:我沒有得到包含函數的所有行

select * from Mytable where contains(Field, '68396.68403.'); 

但我只得到一個結果,具有值「68396.68403」的行。但我有更多的行,如「68396.68403.xxxx」,「68396.68403.yyy」等,我沒有得到結果。但它們含有「68396.68403」。

什麼問題?

我正在使用Sql Server 2014 express和我正在使用「system」作爲停用詞。

如果我說我有這個查詢停止字:

SELECT stopword FROM sys.fulltext_stopwords 

我沒有任何行。

非常感謝。

回答

1

嘗試使用前綴:

select * 
from Mytable 
where contains(Field, '68396.68403.*'); 
+0

謝謝,這是作品。我想問一下,不包含獲取包含字符串的行的含義嗎?爲什麼我要使用「*」來獲得檢測結果?謝謝。 –

+0

有了這個解決方案,我得到的解決方案68396.68403.XXX.YYY但不是68396.68403.XXX我的意思是我沒有得到只有2或3個數字的結果。 –

+0

@ÁlvaroGarcía我相信這是因爲全文引擎將「68396.68403.XXX.YYY」視爲一個單詞(在這種情況下句點不是斷字符),所以您必須使用通配符來強制子字符串匹配。 – Keith