1

展開された検索文字列があり、その一部または全部が mysql DB テーブルのエントリと一致するかどうかを確認する必要があります。

ユーザーが「pour house greensboro」などを検索すると、「pour house」がテーブルのエントリと一致します。ただし、検索は「$1 ビール ポア ハウス グリーンズボロ」など、任意の順序で行うこともできるため、検索文字列の各部分をまとめて、DB の内容と一致するかどうかを確認する必要があります。

したがって、展開された文字列の部分が単なる数字である場合、次のようにチェックする必要があります:
0 + 1 + 2 + 3 + 4
0 + 1 + 2 + 3
0 + 1 + 2
0 + 1
0
1 + 2 + 3 + 4
1 + 2 + 3
1 + 2
1
2 + 3 + 4
2 + 3
2
3 + 4
3
4

文字列の部分が 5 つより多い場合も少ない場合もあります

これを簡単に行う方法はありますか?

4

4 に答える 4

2

これを行う方法を理解しましたが、今までこれを更新することを考えていませんでした...

(for $i=0; $i < count($search_string); $i++){
    $output = '';
    (for $a=$i; $a < count($search_string); $a++){
        $output = $output." ".$search_string[$a];
    }
}
于 2012-04-29T19:55:39.013 に答える
1

%LIKE%は機能しますが、かなり遅くなります。代わりに、MySQLの全文検索機能を使用することをお勧めします。いくつかのチュートリアルのためのちょうどグーグル:)

于 2012-04-04T21:28:54.460 に答える
0

'%LIKE%'を使用します:

SELECT *
  FROM MyTable
 WHERE MyField LIKE '%SearchKeyword1%'
    OR MyField LIKE '%SearchKeyword2%'
    OR MyField LIKE '%SearchKeyword3%'
...
于 2012-04-04T21:27:10.600 に答える
0

展開された文字列をいつでも配列内に配置し、各配列値に対してデータベースでクエリ検索を実行できます。つまり、select * from table where data = array[$x];

于 2012-04-04T21:25:19.580 に答える