编写 SQL 查询以在表中搜索具有多列的术语的最佳和优化方法是什么?
例如,我有一张产品表:
id | title | color_id
-------------------
1 | Dress | 1 (red)
2 | T-shirt | 3 (blue)
3 | Pants | 2 (green)
4 | Socks | 1 (red)
5 | Dress | 2 (green)
6 | Shoes | 2 (green)
7 | Pants | 3 (blue)
还有一张颜色表:
id | color
----------
1 | Red
2 | Green
3 | Blue
如果用户输入术语Red Dress,结果他必须看到Product
id 1
,如果用户只输入Red,结果他必须看到Products
id1
和4
。
更新:可能有一些输入,例如dress red
或red blue
。
真实版本的表格更复杂,但我试图用最简单的方式来解释。