私はいくつかのテキスト列を含むテーブルを持っており、検索タームを使用してテーブルをクエリできる必要があります。単一用語については、これは@searchTerms
があり、何かのような...複数の入力に対するSQLクエリ
SELECT * FROM things WHERE @searchTerms in (column1, column2...columnX)
...時々私は、単一のクエリで複数の用語を超える検索する必要がある、しかし...
SELECT * FROM things WHERE @searchTerm in (column1, column2...columnX)
簡単です単一の値ではなく、値の集合。 SQLでこの動作をエミュレートする方法はありますか?
更新: @Tedo G.ありがとうございます。残念ながら、別の用語の間にAND
を使用するクエリが必要です。私は結果のグループにあなたの変更を追加したことを行うと、明確な結果あたりのカウントは項の数と一致することを確認...
SELECT
*
FROM
things AS A INNER JOIN @searchTerms AS B
ON B.[FieldName] IN (column1, column2...columnX)
GROUP BY column1, column2...columnX
HAVING count(column1) = @numberOfSearchTerms
...これは動作しますが、より良い方法はありますか?
あなたはおそらく、あなたがしているデータベースのフルテキスト検索機能になりますを使用して。 –
これはおそらく私がやろうとしていることですが、可能であれば全文検索を使わないで行う方法があるかどうかを知りたいのです – GoatInTheMachine
@searchTermsの値をテンポラリテーブルに入れますか? – jarlh