2017-01-27 3 views
0

Я использую NopCommerce 3.5 и пытаюсь изменить SQL хранимую процедуру, чтобы иметь возможность искать SKUSQL Предложение Where с Содержит

Мой вопрос, как я могу получить следующий SQL также проверить, если значение столбца также содержащиеся в ключевых словах?

--SKU 
    IF @SearchSku = 1 
    BEGIN 
     SET @sql = @sql + ' 
     UNION 
     SELECT p.Id 
     FROM Product p with (NOLOCK) 
     WHERE ' 
     IF @UseFullTextSearch = 1 
      SET @sql = @sql + '(CONTAINS(p.[Sku], @Keywords) OR CONTAINS(@Keywords, p.[Sku])) ' 
     ELSE 
      SET @sql = @sql + '(PATINDEX(@Keywords, p.[Sku]) > 0 OR PATINDEX(p.[Sku], @Keywords) > 0) ' 
    END 
+1

try wrapping p.sku с подстановочными знаками. например 'patindex ('%' + p. [sku] + '%', @ keywords' – Xedni

+0

Это сработало !! :) Спасибо! – Orion

ответ

1

try wrapping p.sku с подстановочными знаками. например patindex('%' + p.[sku] + '%', @keywords)

0

Комментарий Xedni выше помог решить мою проблему. Изменен SQL-запрос на следующее.

--SKU 
    IF @SearchSku = 1 
    BEGIN 
     SET @sql = @sql + ' 
     UNION 
     SELECT p.Id 
     FROM Product p with (NOLOCK) 
     WHERE ' 
     IF @UseFullTextSearch = 1 
      SET @sql = @sql + '(CONTAINS(p.[Sku], @Keywords) OR CONTAINS(@Keywords, ''%'' + p.[Sku] + ''%'')) ' 
     ELSE 
      SET @sql = @sql + '(PATINDEX(@Keywords, p.[Sku]) > 0 OR PATINDEX(''%'' + p.[Sku] + ''%'', @Keywords) > 0) ' 
    END 
Смежные вопросы