我正在使用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
您是否可以推荐一种方法来获取通配符搜索?我知道有一个性能损失,但我想尝试并开始工作。
答案 0 :(得分:2)
contains('“*”')将按设计返回零记录。
你有什么理由需要这样做吗?为什么不在没有参数的情况下进行查询,如果它是空的?
IF @SearchBy = '' BEGIN
SELECT *
FROM Person
END
ELSE BEGIN
SELECT *
FROM Person
WHERE CONTAINS(*, @SearchBy)
END