0

ユーザーがテキスト フィールドに入力したキーワードからクエリを作成する必要があります。これは次のことを行います。たった1つのキーワードを持つ車。私のテーブルは次のようになります。

field_id | car_id | keyword |
----------------------------
1        | 5       | 1989   |
-----------------------------
2        | 8       | old    |
-----------------------------
3        | 8       | ford   |
-----------------------------
6        | 8       | cheap  |
-----------------------------
4        | 7       | ford   |
-----------------------------
6        | 7       | cheap  |
-----------------------------
5        | 6       | ford   |
-----------------------------

ユーザーが「old」、「ford」、「cheap」を検索した場合、car_id 8、7、および 6 が返されるはずです。これらにはキーワードが含まれているからです。さらに、どの車がどのキーワード (8: "old"、"ford"、"cheap" および 7: "ford"、"cheap" および 6: "ford") を持っているかを知る必要があります。私はMySQLの専門家ではないので、ここで何らかの多次元配列を作成できるかどうかはわかりません...

すべてのキーワードが入力されている車のみを選択するクエリがあります。

Select car_id from keywords 
Where keyword in ("old","ford", "cheap") 
group by car_id having count(*) = 3;    
4

1 に答える 1

0

指定されたキーワードに属する車が 3 台しか存在しない場合にのみ送信されるため、必要ありません。これを試して

Select car_id from keywords ,,GROUP_CONCAT(keyword)
Where keyword in ("old","ford", "cheap") 
group by car_id 

これにより、車に属するコンマ区切りのキーワードが得られます

于 2012-06-02T19:38:58.333 に答える