全文包含来自另一个表的列

Posted

技术标签:

【中文标题】全文包含来自另一个表的列【英文标题】:Full text contains with a column from another table 【发布时间】:2019-11-21 00:48:07 【问题描述】:

我需要搜索大于 4000 个字符的文本。

这是我尝试做的选择,而不是在包含中放置一个很长的字符串:

;WITH cte AS
(
    SELECT code 
    FROM table_a
)
SELECT * 
FROM cte
CROSS APPLY
    (SELECT * 
     FROM table_b
     WHERE CONTAINS(table_b.field, cte.code)) c

但这种方法不起作用。

任何帮助将不胜感激。

谢谢

【问题讨论】:

“但是这个解决方案行不通。” 为什么不行呢?没试过怎么知道? 因为当我从另一个表中放置一个字段时,包含对我不起作用。它只适用于字符串或变量。 【参考方案1】:

游标可以解决问题,但您应该注意对性能的影响,具体取决于您的数据。

更详细:通过 table_a 进行游标循环。对于每个循环,为代码设置一个变量。使用该代码作为 CONTAINS 函数的参数。如果匹配,则将 code 和 table_b.id 的值插入到临时表中。在所有循环之后,您的临时表中就有了结果。

【讨论】:

以上是关于全文包含来自另一个表的列的主要内容,如果未能解决你的问题,请参考以下文章

如何用另一个表的列值更新一个表的列值? [复制]

从表中选择最新的带时间戳的值,该表对于一个列 id 有多个条目,对于每个唯一的列 id 和来自另一个表的数据

根据 R 中的列名创建一个新数据框,其中包含来自另一个数据框的列

在另一个表的 select 子句中使用一个表中的列值

如何从一个表中过滤出其 id 出现在另一个表的列中的记录

您可以将一个表中具有另一个表的列名的列与第二个表链接吗