我已经得到以下查询,它使用全文索引搜索匹配查询的TOP 5产品(来自RawProducts表),在给定Shop中(由@ShopId变量)。目前,我一遍又一遍地为每个ShopId(有27个商店)调用这个程序 - 这有点慢。优化SQL 2008全文查询(CONTAINSTABLE)
我的问题是 - 谁能让我知道如何修改查询来接受@ShopId变量中ShopIds的逗号分隔列表,并返回每个店铺的TOP 5匹配?
这里的查询到目前为止:
DECLARE @ShopId uniqueidentifier
SET @ShopId = '49506541-4ce2-40ac-812a-7ab262e6f0b0'
SELECT TOP 5
ftt.RANK,
rp.*
FROM RawProducts rp
JOIN CONTAINSTABLE(RawProducts,
RawProductName,
'ISABOUT("*radox*","*shower*")') AS ftt ON ftt.key = rp.RawProductId
WHERE rp.ShopId = @ShopId
ORDER BY ftt.RANK DESC
UDF通常速度更快,而XML替代方案可用于SQL Server 2005。 – 2009-09-19 21:13:49