1

これは私の単純な頭脳を動かすことができません。注文された製品のカンマ区切りの配列は、次のようにプロシージャに渡されます。

set @array = 'productID_47, productID_4'

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

2 つのレコードが返されます。偉大な。しかし、私が持っている場合:

set @array = 'productID_47'

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

繰り返しますが、2 つのレコードが返されますが、これは私が望むものではありません。悲しいことに、製品コードは固定されています。

助けていただければ幸いです、ありがとう

4

1 に答える 1

2

にアイテムが1つしかない場合、コンマはないと仮定しています@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 に答える