2012-05-08 32 views
0

我需要构建一个查询,从用户在文本字段中输入的关键字,这将执行以下操作:将关键字和搜索在表中,之后汽车具有所有给定关键字。 我的表看起来像这样:Mysql - 找到具有相同ID的字段

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

相关问题