Использование SQL СОДЕРЖИТ несколько слов внутри переменной - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь использовать функцию SQL CONTAINS с переменными. Обычно я могу использовать CONTAINS следующим образом:

WHERE CONTAINS(tablename, '"some text to search for"')

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

WHERE CONTAINS(tablename, @Keyword)

позволяет искать только одно слово и выдает исключение, если ему передано несколько слов.

Сообщение 7630, уровень 15, состояние 3, процедура dbo.bp_SearchCategoryByKeyword, строка 11 [Стартовая строка начала 0] Синтаксическая ошибка рядом с этим в условии полнотекстового поиска

1 Ответ

2 голосов
/ 06 января 2020

Я только что попробовал это, и это сработало, как и ожидалось:

DECLARE @SearchTerms varchar(8000) = 'file AND read';

SELECT MessageID, Description 
FROM dbo.Messages
WHERE CONTAINS(Description, @SearchTerms)
ORDER BY MessageID;

Это также сработало:

DECLARE @SearchTerms varchar(8000) = '"file" AND "read"';

SELECT MessageID,Description 
FROM dbo.Messages
WHERE CONTAINS(Description, @SearchTerms)
ORDER BY MessageID;
...