问题
I have the following WHERE
clause:
WHERE (@Keywords IS NULL
OR (CONTAINS((p.Title, p.Area, p.[Message]), @Keywords))
)
If @Keywords = 'control'
, then the query executes successfully and filters my records
If @Keywords = 'control of'
, then I get the following error:
Syntax error near 'of' in the full-text search condition 'control of'.
Why is this and what can I do to resolve the issue?
The main reason I'm using this method over using LIKE
condition is so that I can search multiple words.
回答1:
Enclose the keywords in double quotes if you want to search exactly for control of
SET @Keywords = '"control of"'
If you want to search for control and of, use the following:
SET @Keywords = 'control AND of'
But server may consider of as a garbage or stop word, so in this case use the following:
SET @Keywords = 'control AND "of"'
来源:https://stackoverflow.com/questions/9435119/syntax-error-near-of-in-the-full-text-search-condition-control-of