объединить два вызова CONTAINS в предложении where - PullRequest
2 голосов
/ 10 июня 2009

Я пытаюсь создать следующий запрос SQL (как, например, это пример последнего запроса): -

DECLARE @SearchQuery AS NVARCHAR(100) = 'yellow bird'

SELECT Id, Name
FROM dbo.FooBars
WHERE CONTAINS(Name, N'FORMSOF(Thesaurus, yellow)') 
  AND CONTAINS(Name, N'FORMSOF(Thesaurus, bird)')

Заметьте, как у меня две CONTAINS строки? Это потому, что в поисковом запросе есть два слова. ( пробел является разделителем). Этот запрос может содержать от 1 до n слов.

Как я могу сгенерировать этот код SQL на основе количества слов в поисковом запросе?

1 Ответ

3 голосов
/ 10 июня 2009

Вы можете поместить «И» в само содержимое, так что оно может быть

select * 
from dbo.FooBars
where contains(Name, 'FORMSOF(Thesaurus, yellow) AND FORMSOF(Thesaurus, bird)')

со строкой 'FORMSOF (тезаурус, желтый) И FORMSOF (тезаурус, птица)' встроен в переменную типа

declare @searchCriteria varchar(200)
set @searchCriteria = 'Some string you built up'
select * 
from dbo.FooBars
where contains(Name, @searchCriteria)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...