web-dev-qa-db-ja.com

全文検索条件「controlof」の「of」付近の構文エラー

次のWHERE句があります。

WHERE (@Keywords IS NULL
            OR (CONTAINS((p.Title, p.Area, p.[Message]), @Keywords))
        )

@Keywords = 'control'の場合、クエリは正常に実行され、レコードがフィルタリングされます

@Keywords = 'control of'の場合、次のエラーが発生します。

全文検索条件「controlof」の「of」付近の構文エラー。

これはなぜですか?問題を解決するために何ができますか?

LIKE条件を使用するよりもこの方法を使用する主な理由は、複数の単語を検索できるようにするためです。

27
Curt

control ofを正確に検索する場合は、キーワードを二重引用符で囲みます。

SET @Keywords = '"control of"'

controlおよびofを検索する場合は、以下を使用します。

SET @Keywords = 'control AND of'

ただし、サーバーmayofをガベージまたは停止Wordと見なすため、この場合は次を使用します。

SET @Keywords = 'control AND "of"'
37
Oleg Dok