1

ウェブサイトの検索ツールを作りたいです。

フレーズを検索する場合、複数の列を検索したい

たとえば、dewalt ドリルを検索し、タイトルに作品 dewalt パワー ドリルが含まれている場合、それを表示します。

また、dewalt ドリルを検索し、タイルに dewalt があり、説明にドリルがある場合は、それを表示させたいと思います。

ただし、検索のすべての単語がフィールドの任意の組み合わせに含まれている必要があります。

誰かがクエリで私を助けることができますか?

現在:

{Select * from products where sku like '%{$searchwords}%' or title like '%{$searchwords}%' or desc like '%{$searchwords}%}
4

2 に答える 2

1

おそらくFULLTEXT検索が必要です (MySQL 5.6 以降では、これは InnoDB テーブルでも利用できます)。ですべての単語を要求できますBOOLEAN MODE

于 2013-10-27T20:29:44.333 に答える
1

テーブルが myisam の場合、フルテキスト インデックスを作成しブール モードで使用できます

キーを追加するには:

alter table products ADD FULLTEXT (sku, title, desc)

次に、クエリは次のようになります。

 $searchwords = join(' +', explode(' ', $searchwords));

 $query = "SELECT * FROM products WHERE MATCH (sku, title, desc) AGAINST ('{$searchwords}' IN BOOLEAN MODE)";
于 2013-10-27T20:31:27.007 に答える