2011-07-19 7 views
3

私はSQL Server 2008のFTSオプションを使用しています。私のクエリでは、ワイルドカード検索を渡したいと思います。私は、パラメータを渡していますので、私は持っている理由が含まれていLIKE '%'の全文検索に相当するものは何ですか?

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

がある:FTSを使用して

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

、私はこのような何かをしたいと思います:STD SQLで

、私はこれを持っていますsp。例えば

:spMySearch(中

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

)、私はこれを持っている:

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

は、ワイルドカード検索を取得するにお勧めできるアプローチはありますか?私はパフォーマンスヒットがあることを知っていますが、それは私が試して働きたいものです。

答えて

2

contains( '"*​​"')は、意図的にゼロレコードを返します。

あなたはそれを行う必要がある何らかの理由はありますか?それが空の場合、パラメータを指定しないでクエリを実行するだけではどうですか?

IF @SearchBy = '' BEGIN 
    SELECT * 
     FROM Person 
END 
ELSE BEGIN 
    SELECT * 
     FROM Person 
     WHERE CONTAINS(*, @SearchBy) 
END 
関連する問題