我需要根据用户在文本字段中输入的关键字构造一个查询,该查询将执行以下操作:获取关键字并在表中搜索,之后汽车具有所有给定的关键字。
我的桌子看起来像这样:
field_id | car_id | keyword |
----------------------------
1 | 5 | 1989 |
-----------------------------
2 | 8 | old |
-----------------------------
3 | 8 | ford |
-----------------------------
4 | 2 | audi |
-----------------------------
5 | 5 | red |
-----------------------------
6 | 8 | cheap |
-----------------------------
假设用户搜索了“ old”,“ ford”和“ cheap”,则应返回car_id 8,因为其中包含所有关键字。您将如何实现?
最佳答案
假设您知道输入的关键字数量,并且希望所有关键字都匹配
另外,它假定关键字car_id是唯一的。 (car_Id 8不能便宜两次)
Select car_ID from myTable
Where keyword in ('old','ford','cheap')
group by car_ID
having count(*) = 3