4

レシピのMySQLデータベースがあります。列の1つであるNAMEは、varchar(255)です。各NAMEは複数の単語にすることができます(例:「チョコレートチップクッキー」と「オートミールクッキー」)。

レシピ名を効率的に個々の単語に解析してから、最も一般的な単語のリストを返す方法を探しています。したがって、上記の2つのレシピが与えられると、クエリは次のようになります。

クッキー、チョコレート2個、チップ1個、オートミール1個、1個

これを行うための効率的な方法はありますか?すべての結果をクエリし、各レシピ名を単語に分割してから、データベースの外部でこれを行うためのデータ構造を構築することができます。または、事前に文字列を分割してテーブルを作成することもできます。

私が本当に望んでいるのは、データベースを活用してこれをより速く行うことだと思います(インデックスのように)。単一のクエリでそれが可能かどうかはわかりません。

それで、私は前もってテーブルを作るのに行き詰まっていますか?または、これを1つのクエリで効率的に実行できますか?

ありがとう!

4

1 に答える 1

1

テーブルでMyISAMストレージエンジンを使用し、列にFULLTEXTインデックスを作成する場合は、 myisam_ftdumpのオプションを使用して、各単語の総数を取得できます。ただし、残念ながら、これはSQLの外部になります。NAME--count

于 2012-10-17T16:44:36.217 に答える