1

这我无法理解我的简单大脑。以逗号分隔的订购产品数组被传递给如下过程:

set @array = 'productID_47, productID_4'

select productID, price from Products 
where @array like '%' + productID + '%'

返回两条记录。伟大的。但是,如果我有:

set @array = 'productID_47'

select productID, price from Products 
where @array like '%' + productID + '%'

同样,返回两条记录,这不是我想要的。遗憾的是,产品代码是固定的。

任何帮助将不胜感激,谢谢

4

1 回答 1

2

我假设只有一个项目时没有逗号@array

select productID, price 
from Products  
where @array = productID --only one item, can use index
    or @array like productID + ',%'  --array starts with item, can use index
    or @array like '%, ' + productID + ',%' --item is in the middle of @array, cannot use index
    or @array like '%, ' + productID --item is at the end of @array, cannot use index
    or @array like '%,' + productID
于 2012-09-04T15:15:35.563 回答