什么是LIKE'%'的全文搜索等价物?

时间:2011-07-19 02:31:37

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

我正在使用sql server 2008的FTS选项。在我的查询中,我想传递一个通配符搜索。

在std sql中,我有这个:

SELECT * 
  FROM Person 
WHERE Lastname like '%';  -- this returns all persons

使用FTS,我想做这样的事情:

SELECT * 
  FROM Person 
 WHERE contains(*, '"*"')  -- this return no rows.

我包含的原因是因为我将参数传递给sp。

例如:

exec spMySearch('formsof (inflectional, stuff)')

在spMySearch()中,我有这个:

select * from Person where contains(*, @SearchBy)  -- this is the param of spMySearch

您是否可以推荐一种方法来获取通配符搜索?我知道有一个性能损失,但我想尝试并开始工作。

1 个答案:

答案 0 :(得分:2)

contains('“*”')将按设计返回零记录。

你有什么理由需要这样做吗?为什么不在没有参数的情况下进行查询,如果它是空的?

IF @SearchBy = '' BEGIN
    SELECT  *
        FROM    Person
END
ELSE BEGIN
    SELECT  *
        FROM    Person
        WHERE   CONTAINS(*, @SearchBy)
END