1

私はこの質問をすることから始めました配列からの要素を含むすべての行を選択したい そして私の現在の質問はほとんど同じですが、それはまったく異なる目的を果たします. 、 とは言うものの。

私は検索エンジンのようなものに取り組んでいます。データベースに保存されているタイトルを検索して、検索テキスト ボックスに単語が含まれているかどうかを確認する必要があります。次に、それらの各行を繰り返し処理し、一致する単語の数を数え、それに応じて結果をランク付けする予定です。これまでに何度も行われたと確信しています。私はそれなしでそれを行う方法を理解できないようです

select * from table

次に、C#でソートします

4

2 に答える 2

4

SQLServerの1つの方法は

このように一時テーブルに単語をプッシュします

DECLARE @SearchWords TABLE (
  word varchar(30) )

INSERT INTO @SearchWords
        (word)
VALUES  ('Jack')
       ,('Pontiac')
       ,('Bloggs');

このテーブルを実際のテーブルと結合するよりも

SELECT a.* FROM table_data a
INNER JOIN @SearchWords b on a.record_desc like '%' + b.word + '%'
于 2012-05-09T19:03:13.487 に答える
2

あなたはこのようなことを試すことができます:

SELECT * FROM table WHERE name LIKE '%word1%' OR name LIKE '%word2%';

記号は、一般的な検索%と類似しています。*

文字列を取得して複数の単語に対してこのクエリを作成するには、次のようにします。

String inputString = "hello my friend";
String[] wordlist = inputString.split(" ");
String query = "SELECT * FROM table WHERE 0=0 ";
for(String word : wordlist) {
    query += "OR name LIKE '%" + word + "%' "; 
}

文字列の最後のスペースは重要です。忘れないでください。また、文字列を分割する前にサニタイズすることをお勧めします(余分な句読点を削除し、「a」、「the」、「to」などの単語を削除することもできます)。

于 2012-05-09T18:56:46.533 に答える