编写 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,结果他必须看到Productid 1,如果用户只输入Red,结果他必须看到Productsid1和4。
更新:可能有一些输入,例如dress red或red blue。
真实版本的表格更复杂,但我试图用最简单的方式来解释。