【问题标题】:MSSQL Full Text search - Search only part of table rowsMSSQL 全文搜索 - 仅搜索部分表行
【发布时间】:2012-09-13 06:57:23
【问题描述】:

有没有办法将搜索限制在表中的特定行。

例如:

在一张大表上,我只想搜索具有特定公司 ID 的行:

select *
from Actions
where Company_ID=1253
and  CONTAINS(ItemDesc, 'ABC')


SELECT
    AC.*,    
    col1.RANK
FROM Actions AC
INNER JOIN CONTAINSTABLE(Actions, ItemDesc, 'ABC',50) as col1  
    on col1.[KEY] = AC.ActionId
where Company_ID=1253

我尝试了这两个示例,我认为搜索首先在所有表行上运行, 然后按 Company_ID 过滤

我正在寻找一种在搜索前限制行数的方法

谢谢。

【问题讨论】:

    标签: sql sql-server-2008 full-text-search


    【解决方案1】:

    这样的行为如何?

    SELECT *
    FROM
    (
        SELECT *
        FROM Actions
        WHERE Company_ID = 1253
    ) AS CompanyFilteredActions
    WHERE CONTAINS(ItemDesc, 'ABC')
    

    您需要查看查询计划和性能,但我认为这至少可以满足您的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多