如果未指定搜索文本,是否有绕过结果集的全文过滤的最佳做法?我现在做的是:
SELECT * FROM items
WHERE @search='all' OR CONTAINS(*,@search)
但我想知道是否有更优雅的方式?
答案 0 :(得分:0)
您的示例是编写查询的最优雅方式。但是,您应该真正查看执行计划,看看这是否是高性能方法。
您可能需要考虑编写这样的查询,以确保SQL Server在没有必要时不评估CONTAINS运算符。
if (@search = 'all')
SELECT * FROM items
else
SELECT * FROM items
WHERE CONTAINS(*,@search)