Синтаксическая ошибка около 'of' в полнотекстовом поиске 'control of' - PullRequest
26 голосов
/ 24 февраля 2012

У меня есть следующее WHERE предложение:

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

Если @Keywords = 'control', то запрос выполняется успешно и фильтрует мои записи

Если @Keywords = 'control of', то я получаю следующую ошибку:

Синтаксическая ошибка рядом с 'of' в условии полнотекстового поиска 'control of'.

Почему это так и что я могу сделать, чтобы решить проблему?

Основная причина, по которой я использую этот метод вместо условия LIKE, заключается в том, что я могу искать несколько слов.

1 Ответ

37 голосов
/ 24 февраля 2012

Заключите ключевые слова в двойные кавычки, если вы хотите точно найти элемент управления

SET @Keywords = '"control of"'

Если вы хотите найти control и из , используйте следующее:

SET @Keywords = 'control AND of'

Но сервер может рассматривать из как мусор или слово остановки, поэтому в этом случае используйте следующее:

SET @Keywords = 'control AND "of"'
...