【问题标题】: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

但这种方法不起作用。

任何帮助将不胜感激。

谢谢

【问题讨论】:

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

标签: sql-server contains cross-apply


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 2014-03-17
    • 2012-11-18
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多