我在表上運行兩個查詢。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)。 –