Can /ストアドプロシージャ/クエリを作成するときにINNER JOINの一部としてLIKE条件を使用する必要がありますか?私は正しいことを尋ねているかどうか分からないので、説明しましょう。INNER JOINの一部にLIKE句を使用する
テキストを含む列で検索するキーワードのリストを取得するプロシージャを作成しています。私は、コンソールの前に座っていた場合、私はそのように実行したい:
SELECT Id, Name, Description
FROM dbo.Card
WHERE Description LIKE '%warrior%'
OR
Description LIKE '%fiend%'
OR
Description LIKE '%damage%'
しかし、ストアドプロシージャに「強く型付けされた」リストの解析を行うために行っている間、私は少しを拾ったトリックは、リストを解析することですテーブル変数/テンポラリテーブルに変換し、適切なタイプに変換してから、最終結果セットのテーブルに対してINNER JOINを実行します。これは、整数IDのリストをプロシージャに送信するときに効果的です。
SELECT Id, Name, Description
FROM dbo.Card
INNER JOIN @tblExclusiveCard ON dbo.Card.Id = @tblExclusiveCard.CardId
私はこのトリックを文字列のリストで使いたいと思っています。しかし、私は特定のキーワードを探しているので、LIKE句を使用します。だから、理想的に私はこのように私の最後のクエリを見ているだろうと思っています:
SELECT Id, Name, Description
FROM dbo.Card
INNER JOIN @tblKeyword ON dbo.Card.Description LIKE '%' + @tblKeyword.Value + '%'
が推奨/このことは可能ですか?
このようなことをするより良い方法はありますか? 「archfiend」、「獣戦士」で使用されている「直接被害」と「戦闘ダメージ」という用語があるので、私は句の両端にワイルドカードを入れている理由がある
カードのテキスト。
パフォーマンスによっては、指定したクエリを使用することも、フルテキストキーワード検索を使用して同じタスクを実行することもできます。
私はテキスト検索をしたいフィールドにテキストインデックスを設定する以外に、何か必要なことはありますか?
:-)私の作品: //stackoverflow.com/a/23276513/443900 – Lee