Мой запрос ContainsTable не работает - пожалуйста, помогите :)
-
13-09-2019 - |
Вопрос
У меня есть настройка полнотекстового каталога.Он имеет уникальное количество ключей 117 и содержит 19 элементов.В таблице всего 19 строк.
В таблице есть поле NVARCHAR(50), называемое ClientGuid.Это guid с каким-то странным текстом в конце.
например..
- 8b6ef4a504dd1a57f079180e7f6eb4a0(-)
- 8b6ef4a504dd1a57f079180e7f6eb4a0 (НОРМАЛЬНО)
(и нет, я не определял данные этого текстового поля - мы получаем их из стороннего API.
в любом случае, это мой sql и запрос, который я запускаю к нему.Когда я запускаю запрос, я получаю НУЛЕВЫЕ результаты обратно: (
ALTER FUNCTION [dbo].[Foo_HiJonSkeet]
(
@ClientGuid NVARCHAR(50)
)
RETURNS TABLE
AS
RETURN
(
SELECT KEY_TBL.[Key] as LogEntryId,
KEY_TBL.RANK as Relevance
FROM CONTAINSTABLE(LogEntries, ClientGuid, @ClientGuid) AS KEY_TBL
)
SELECT * FROM Foo_HiJonSkeet('8b')
Есть какие-нибудь предложения?Сервер - Sql Server 2008.
Решение
Вы можете попробовать следующую конструкцию:
SELECT * FROM Foo_HiJonSkeet('"8b*"')
добавление двойных кавычек и звездочки после исходного поискового запроса.Это должно сработать.
Но в случае, если все результаты поиска будут похожи на пример, который вы опубликовали выше, я советую вам использовать LIKE
заявление вместо использования полнотекстового поиска.