1

私はms SQLサーバーを使用するのにかなり慣れていないため、整数列の値を文字列に変換してフルテキストを含むクエリで使用する方法があるかどうか疑問に思っていました.

例:

Select 
   *, 
   (select count(t2.id) from table2 t2 where contains(t2.text, t.someinteger)) as number 
from table1 t`

は文字列ではないためt.someinteger、クエリは失敗します。

整数をキャストして a に変換しようとしましたvarcharが、構文的に正しくありません。これを達成する方法を知っている人はいますか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

全文を含むは、期待どおりに機能しません。全文クエリには多くのトリックがあります。多分あなたは演算子のようなものを見るべきです:

select 1 where '1234' like '%' + cast(34 as nvarchar) + '%';

select 1 where '1234' like '%' + cast(35 as nvarchar) + '%';

この投稿に示されているように、全文検索は部分文字列を検索するためのものではありません。

SQL Server で主要なワイルドカード全文検索を機能させるにはどうすればよいですか?

全文検索のしくみ シンプルにする: テキストを取得し、それをトークン/単語 (タグと考えてください) に分割し、すべてのタグ/単語にインデックスを付けます。

したがって、単語/タグを探すと、非常に高速になります。単語の部分文字列を検索すると、「LIKE」クエリと同じように動作します。

私自身の経験から: 単語の末尾または途中の部分文字列から検索する場合、全文検索は役に立ちません。語頭を探せば早い。

したがって、「substring」という単語の部分文字列を見つけたい場合は、次のようにします。

1) 良い (高速な) クエリは "sub*"、"subs*" などです。 => インデックスを使用します

2) 本当に悪いクエリは次のようになります: "*string", " str ", etc. => インデックスを使用しません

于 2013-03-25T15:49:47.033 に答える