2017-01-27 91 views
0

我使用NopCommerce 3.5,我試圖修改SQL存儲過程是能夠搜索SKUSQL凡與子句包含

我的問題是如何得到下面的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

嘗試用通配符包裝p.sku。例如'patindex('%'+ p。[sku] +'%',@ keywords' – Xedni

+0

That worked !! :)謝謝! – Orion

回答

1

試着用通配符包裝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