绕过TSQL CONTAINS过滤

时间:2013-11-18 11:52:25

标签: sql-server tsql full-text-search contains

如果未指定搜索文本,是否有绕过结果集的全文过滤的最佳做法?我现在做的是:

SELECT * FROM items
WHERE @search='all' OR CONTAINS(*,@search)

但我想知道是否有更优雅的方式?

1 个答案:

答案 0 :(得分:0)

您的示例是编写查询的最优雅方式。但是,您应该真正查看执行计划,看看这是否是高性能方法。

您可能需要考虑编写这样的查询,以确保SQL Server在没有必要时不评估CONTAINS运算符。

if (@search = 'all')
    SELECT * FROM items
else
    SELECT * FROM items
    WHERE CONTAINS(*,@search)