#sql #sql-server #full-text-search
#sql #sql-server #полнотекстовый поиск
Вопрос:
Обычное использование ‘Contains ‘
USE AdventureWorks2012;
GO
DECLARE @SearchWord nvarchar(30)
SET @SearchWord = N'performance'
SELECT Description
FROM Production.ProductDescription
WHERE CONTAINS(Description, @SearchWord);
Можем ли мы запустить что-то подобное для поиска столбца внутри «ключа поиска»
SELECT Description
FROM Production.ProductDescription
WHERE CONTAINS(@SearchWord, Description);
Комментарии:
1. Я думаю, что это невозможно использовать
CONTAINS
, потому что contains принимает имя столбца в качестве первого параметра. Попробуйте использоватьLIKE
Ответ №1:
USE AdventureWorks2012;
GO
DECLARE @SearchWord nvarchar(30)
SET @SearchWord = N'performance'
SELECT Description
FROM Production.ProductDescription
WHERE CHARINDEX(@SearchWord,Description)>0;
Использование критериев поиска текста charindex выполняется быстрее, чем использование оператора like, если количество записей
Комментарии:
1. CHARINDEX не имеет подстановочных знаков, таких как ‘LIKE’ или ‘CONTAINS’, поэтому это не будет работать