sql server 2005 - 从tbl A中选择记录包含在tbl B的文本字段中

时间:2009-06-04 09:58:38

标签: sql-server sql-server-2005

我正在尝试在MS SQL 2005中编写SQL Select,以执行以下操作:

TABLE_A包含关键字列表...芦笋,甜菜根,豆类,茄子等(x200)。 TABLE_B包含一些带有一些长文本的记录(约4000个字符)......

我知道我选择的TABLE_B内的记录(byID)。

但是,我需要获取TABLE_A中包含在TABLE_B记录文本中的记录的候选名单。

我想知道SQLs CONTAINS函数是否有用......但可能不是。

这需要一个超级快速的查询。

干杯

2 个答案:

答案 0 :(得分:2)

由于两端的LIKE和通配符,它​​永远不会超级快。你不能索引它,也没有任何狡猾的技巧。但是,因为您已经过滤了TableB,所以它应该是可以接受的。如果你在tableB中有一百万行,你可以在它运行时去喝咖啡

SELECT
    A.KeyWordColumn
FROM
    TableA A
    JOIN
    TableB B ON B.BigTextColumn LIKE '%' + A.KeyWordColumn+ '%'
WHERE
    B.ByID = @ID --or constant etc

如果您有全文索引,则可以使用CONTAINS:但不能用于普通的SQL查询

答案 1 :(得分:0)

我会尝试这个

从table_a,table_b中选择关键字 table_b.text喜欢'%'+关键字+'%' 和table_b.Id ='111'