テーブルに対して2つのクエリを実行しています。SQL:Like 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ののバージョンは? 2008年の場合、 'SELECT * FROM sys.dm_fts_parser( '" STYCAST 2851 BLACK "'、1033、0,0)を使ってパーサーに可視性を与えることができます。なぜ文字列が異なって扱われるのかはわかりません。 –
面白い質問ですが、両方の値がまったく同じであることを確認してください。先頭/末尾の空白文字がない場合と同様です。 CONTAINSがあなたのテキストに正確にマッチするのに対して、LIKEはあなたのテキストにマッチしますが、どちらの側にも一致します。 – Purplegoldfish
あなたのフルテキストカタログが古くなっているような感じです。 [ALTER FULLTEXT CATALOG](http://msdn.microsoft.com/en-us/library/ms176095.aspx)を使用して再構築することをお勧めします。 –