2012-05-08 2 views
0

Мне нужно составить запрос из ключевых слов, введенных пользователем в текстовом поле, который будет выполнять следующие действия: взять ключевые слова и выполнить поиск в таблице, после чего автомобиль имеет все данные ключевые слова. Моя таблица выглядит следующим образом:Mysql - найти поля с одинаковым идентификатором

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

Скажет, если пользователь искал «старый», «Форд» и «дешево», то car_id 8 должен быть возвращен, поскольку она содержит все ключевые слова. Как бы вы это сделали?

+0

Не хотите сказать, что он вернет car_id 8? –

+0

Вы не имеете в виду автомобиль id 8? – MichaelS

+0

О да ... жаль об этом – user1382785

ответ

1

Предполагает, что вы знаете количество введенных ключевых слов, и вы хотите совпадение на всех из них. Кроме того, предполагается, что ключевое слово car_id уникально. (car_Id 8 не может быть дешевым дважды)

Select car_ID from myTable 
Where keyword in ('old','ford','cheap') 
group by car_ID 
having count(*) = 3 
+0

Это работает! спасибо большое приятель! – user1382785

Смежные вопросы