次のWHERE
句があります。
WHERE (@Keywords IS NULL
OR (CONTAINS((p.Title, p.Area, p.[Message]), @Keywords))
)
@Keywords = 'control'
の場合、クエリは正常に実行され、レコードがフィルタリングされます
@Keywords = 'control of'
の場合、次のエラーが発生します。
全文検索条件「controlof」の「of」付近の構文エラー。
これはなぜですか?問題を解決するために何ができますか?
LIKE
条件を使用するよりもこの方法を使用する主な理由は、複数の単語を検索できるようにするためです。
control ofを正確に検索する場合は、キーワードを二重引用符で囲みます。
SET @Keywords = '"control of"'
controlおよびofを検索する場合は、以下を使用します。
SET @Keywords = 'control AND of'
ただし、サーバーmayはofをガベージまたは停止Wordと見なすため、この場合は次を使用します。
SET @Keywords = 'control AND "of"'