我需要根据用户在文本字段中输入的关键字构造一个查询,该查询将执行以下操作:获取关键字并在表中搜索,之后汽车具有所有给定的关键字。
我的桌子看起来像这样:

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

10-06 11:04