1

我的表结构如下所示。

Products { product_name, brand, model}

都是 varchar 字段(还有更多字段,但与我的问题无关。此表中有近 5000000 个。

现在我需要做的是,我想遍历所有产品并检查 product_name 是否包含任何其他产品品牌和型号(不是单词的一部分而是完整的单词,所以产品名称应该包含一个单词的型号和一个单词的品牌),如果所以把这些是相同的产品存放在某个地方。

我已经用共同相关的子查询方法研究了全文索引,但后来知道 CONTAINS 函数不接受列名作为第二个单词,我也不知道如果以某种方式实现它会有多快。

任何做同样事情的建议都会对我很有帮助。

非常感谢您的帮助。

4

1 回答 1

1

like使用and是不可能的exists吗?

select * from Products p
where exists(select * from Products 
             where p.product_name != product_name 
             and (' ' + p.product_name + ' ' like '% ' + brand + ' % ' + model + ' %'
                or ' ' + p.product_name + ' ' like '% ' + model + ' % ' + brand + ' %'))
于 2013-04-19T15:21:51.837 回答