2015-11-01 50 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