2012-02-08 26 views
1

私は、異なるキーワードを使用してスキルに基づいて人々を検索しようとしています。しかし、検索しようとするたびに、正確なキーワードに一致するように結果が絞り込まれます。PHP/MySqlで複数のキーワードを使用して検索する

例:ユーザーのための

テーブル:

ID   Name     Skills 
1  Joe Smith   Cooking Dancing Painting 
2  John Williams  Drawing Fishing 
3  Beth Gray   Cooking Swimming 
4  Martin Torres  Dancing Repairing CPR 
5  Alice Lee   Cooking Drawing Welding 

あなたが単語 "料理" を使用して検索した場合、それは大丈夫です1,3および5は3件の結果を返します。ただし、「料理の図」を使用して検索すると、1つの結果(料理と絵の両方を持つ5人)のみが返されます。私が達成しようとしているのは、keywordsのスキルの少なくとも1つを持っているすべての人々、この場合は1,2,3および5を返すことです。

ありがとう。

+0

ここにあなたのクエリまたはコードを入れてください? – maxjackie

+0

SELECT * from volunteerbio WHERE(ボランティアスペシャルスクールLIKE 'Cooking%'とボランティアSpecialSkills LIKE '%Dancing%') – Programmer

答えて

2

Mysql Fulltext検索機能を使用する必要があります。

SELECT * FROM your_table_name 
WHERE MATCH (yourcolumn1,yourcolumn2,...) 
AGAINST ('your texts to search'); 

注:ここでは

は、フルテキストであなたのコード内で使用できるクエリですあなたが検索したい列にfulltextindexを適用する必要があります。

あなたはANDOR条件の組み合わせでlikeでクエリを行うことができます。

SELECT * FROM table_name WHERE (skills LIKE '%Cooking%' AND skills LIKE '%Dancing%' ...) 

OR

SELECT * FROM table_name WHERE (skills LIKE '%Cooking%' OR skills LIKE '%Dancing%' ...) 
+1

Worked great。私はInnoDBを使っていたのでテーブルを変換しなければなりませんでした。 – Programmer

関連する問題