我正在使用NopCommerce 3.5并尝试修改SQL存储过程以便能够搜索SKU
我的问题是如何获取以下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
答案 0 :(得分:1)
尝试使用通配符包装p.sku。例如patindex('%' + p.[sku] + '%', @keywords)
答案 1 :(得分: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