0

MySql DB があります。私の主なテーブルは、一連の 5 冊の書籍のすべての文であり、書籍のインデックス、書籍の章、章の文があります。

例 - ハリー・ポッターの第 5 巻、第 1 章、第 3 文の場合、そのような行があります。

BookID   ChapterID   SentenceID   Text
   4         1           3          Deprived of their usual car-washing and lawn-mowing pursuits, the inhabitants of Privet Drive had retreated into the shade of their cool houses, windows thrown wide in the hope of tempting in a nonexistent breeze.

文字または単語の出現をすべて取得する必要があります。したがって、「e」を検索すると、同じ行が 17 回取得されます。'e' は、この行で 17 回発生します。

シナリオを単純化しました。文字ごとに取得する情報が増えました。

これまでのところ、私は有用なものを得ることができませんでした。

ありがとうございました

4

1 に答える 1

1

JOIN を使用しない限り、SQL クエリが特定のデータベース行に対して複数の行を返さないことは 90% 確信しています。しかし、それはあなたの目的にとって非常に非効率的です。

これを実装する通常の方法は、 のようなクエリを使用することです。このクエリSELECT * FROM books WHERE Text LIKE '%e%'は、テキストに少なくとも 1 つの「e」を含むすべての行を返します。次に、アプリケーションは行を反復処理し、出現回数を数えます。

于 2012-06-06T07:00:37.560 に答える