SQL Server "Необязательный" поиск в свободном тексте - PullRequest
1 голос
/ 09 июля 2009

Я пишу поисковый запрос в SQL Server 2005 для доски обсуждений. Процесс принимает несколько параметров, но большинство из них являются «необязательными». Для тела сообщения есть одно поле поиска, к которому у меня есть полнотекстовый индекс. Вот проблема ..

Если я передаю значение для поиска с помощью FreeText, поиск работает нормально (спасибо Microsoft). Однако поле тела сообщения является необязательным, что означает, что в моем запросе я хочу обработать «поиск всех». Как я могу по умолчанию в моем запросе просто использовать любые \ все записи независимо от данных, хранящихся в поле моего сообщения?

Я знаю, что это не работает, но если значение параметра тела сообщения не возвращается, я ищу что-то вроде:

where (FREETEXT(msg.messagebody, '*'))

1 Ответ

1 голос
/ 09 июля 2009

Вы можете сделать что-то вроде:

выберите * из Products_CatalogProducts, где (@keywords = '*' или свободный текст (msg.messagebody, @ ключевые слова))

Предполагая, что вы передали @keywords с *, если оно пустое

...