0

私のユーザーは検索語を入力フィールドに入力します。私が使用しているスクリプトは、それを$find変数に格納します。次に、次のようにmysqlを検索します。

"select * from mytable WHERE title LIKE '%$find%' or description LIKE '%$find%'";

タイトルに1つの単語が含まれ、説明に別の単語が含まれている場合でも、結果を取得できるようにしたいのですが、現在は発生していません。だから..$find変数を関数で配列に分割する必要があると思います。その後、mysqlでどのように検索しますか?検索に含まれる単語の数がわからないため(一度に8単語を検索することを決定する可能性があります)、mysqlクエリで配列を参照するにはどうすればよいですか?

事前にThx!

4

1 に答える 1

1

FULLTEXTインデックスを使用し、それに適切なブール検索クエリを作成する必要があります。

これがなくても必要な効果が得られる場合がありますが、これはFULLTEXTインデックスを使用する場合に比べて非常に遅くなります。を使用explodeして単語のリストを取得し、などのWHERE条件を作成する必要があります。concat(title, description) LIKE '%word1%' AND concat(title, description) LIKE '%word2%'

(私の最初の回答で、この効果を達成することは全文なしでは不可能であると述べました。私は間違っていて、この回答を編集しました。)

于 2012-04-28T21:07:56.270 に答える