我在表上运行两个查询。SQL:Like vs Contains - 不同的结果
SELECT MSDS FROM dbo.MSDSSearch3 WHERE CONTAINS(MSDS, 'STYCAST')
而且
SELECT MSDS FROM dbo.MSDSSearch3 WHERE MSDS like '%STYCAST%'
第一个查询将返回
'STYCAST 50300 LV'
而第二个将返回
'STYCAST 50300 LV'
'STYCAST 2851 BLACK'
有谁知道为什么好像会比返回多个值包含?我运行的包含有问题吗?提前致谢。
什么版本的SQL Server?如果你使用'SELECT * FROM sys.dm_fts_parser(''STYCAST 2851 BLACK'',1033,0,0)''''''我可以看到解析器的一些可见性''我看不到为什么字符串会被区别对待的任何原因。 –
有趣的问题,你确定这两个值是完全一样的吗?因为没有前导/尾随空白字符。这可能会导致此问题,因为CONTAINS将与您的文本完全匹配,而LIKE会匹配您的文本+任何一侧的任何一方 – Purplegoldfish
听起来就像您的全文目录过期了。您可能想尝试使用[ALTER FULLTEXT CATALOG]重建它(http://msdn.microsoft.com/zh-cn/library/ms176095.aspx)。 –