2011-11-14 10 views
0

多分これは間違った質問です。私はSQLで実現するにはどうすればよいsql freetextのような検索

「フリーテキストを使用して 『%テスト%』のような?私は思っ

は含まれており、自由にテキストが同等である」「%テスト%」、プラスワン取得の文法チェック、およびパフォーマンスなどの。私が持っている私の場合は

私は私に229行を与える18

rows.select * from ServiceOfferResultIndexed where FirstName like '%test%' 

を与える

select * from ServiceOfferResultIndexed where contains(FirstName,'test') 

ありがとうございました。

DBはMS SQL 2005です。私は、*が後置式として*サポートされていると思います。それは、私が "* test" 'を提供すると、*はワイルドカードではない単語と見なされることを意味しています。テストは次のようになります。

Containsは、「test」で始まるすべてのフレーズが「test」で始まり、その後に他の文字が続く「test *」のみをサポートします。

+0

あなたはどのデータベースを使用していますか? – Oded

答えて

2

これらは、2つの異なる表現です。 LIKE '%test%'は、これらの4つの文字が一緒になっている行(例:賞賛者または競技者)を見つけようとしており、containsは単語に一致します。

使用しているフルテキストエンジンはわかりませんが、通常はワイルドカードがサポートされています。たとえば、contains(firstame, '*test*')を使用するとどうなりますか?フリーテキスト検索では、特定のdbmsのドキュメントでワイルドカードを調べる必要があります。

関連する問題