我将使用 SQL Server 对表中包含的每个单词进行搜索。查询必须在以下情况下工作:
- 查询必须像or运算符一样在
colour
、style
和字段marerial
中搜索shape
- 查询必须搜索每个单独的搜索词(如
blue
、red
和)modern
以及wood
这些词之间的所有可能组合。 - 搜索值必须包含在类似于like运算符的列中。
这意味着对于这个词,我只能找到带有 [[colour like '%blue%'
或colour like '%red%'
] material like '%wood%'
、style like '%modern%'
和每个形状] 的产品。(必需的输出)换句话说,每个单词的所有组合。
到目前为止,这是我的查询:
select distinct colour, style, material, shape
from products
where colour in ('blue', 'red', 'modern', 'wood') or
style in ('blue', 'red', 'modern', 'wood') or
material in ('blue', 'red', 'modern', 'wood') or
shape in ('blue', 'red', 'modern', 'wood') ;
这是结果:
颜色 | 风格 | 材料 | 形状 |
---|---|---|---|
现代的 | 铝 | 圆形的 | |
现代的 | 金属 | 圆形的 | |
阿尔巴斯特 | 现代的 | 丙烯酸纤维 | 圆形的 |
阿尔巴斯特 | 现代的 | 玻璃 | 圆筒 |
阿尔巴斯特 | 现代的 | 玻璃 | 其他 |
阿尔巴斯特 | 现代的 | 玻璃 | 长方形 |
阿尔巴斯特 | 现代的 | 玻璃 | 圆形的 |
阿尔巴斯特 | 现代的 | 玻璃 | 正方形 |
阿尔巴斯特 | 现代的 | 合成材料 | 地球 |
阿尔巴斯特 | 现代的 | 合成材料 | 圆形的 |
琥珀色 | 现代的 | 钢 | 圆形的 |
黑色的 | 小屋 | 木头 | |
黑色的 | 小屋 | 木头 | 圆形的 |
黑色的 | 现代的 | 反射器 | |
黑色的 | 现代的 | 绝对值 | 圆形的 |
黑色的 | 现代的 | 丙烯酸纤维 | 圆形的 |
黑色的 | 现代的 | 铝 | |
黑色的 | 现代的 | 铝 | 角形 |
黑色的 | 现代的 | 铝 | 圆筒 |
黑色的 | 现代的 | 铝 | 半圆 |
黑色的 | 现代的 | 铝 | 其他 |
黑色的 | 现代的 | 铝 | 椭圆形 |
黑色的 | 现代的 | 铝 | 长方形 |
黑色的 | 现代的 | 铝 | 圆形的 |
黑色的 | 现代的 | 铝 | 正方形 |
黑色的 | 现代的 | 棉布 | 六边形 |
黑色的 | 现代的 | 棉布 | 圆形的 |
黑色的 | 现代的 | 玻璃 | 长方形 |
但我看到结果是基于一个或多个单词是否可以找到。
我也试过这个查询,但没有找到结果。
select distinct colour, style, material, shape
from products
where colour in ('blue', 'red', 'modern', 'wood') and
style in ('blue', 'red', 'modern', 'wood') and
material in ('blue', 'red', 'modern', 'wood') and
shape in ('blue', 'red', 'modern', 'wood') ;
我无法找到一个词是颜色、形状、样式还是材料。
更新:预期结果
颜色 | 风格 | 材料 | 形状 |
---|---|---|---|
蓝色的 | 现代风格 | 木头 | 圆形的 |
红色的 | 现代的 | 木头 | 长方形 |
红色的 | 现代的 | 木头 | 圆形的 |
蓝色的 | 现代的 | 木头 | 长方形 |
蓝色的 | 现代的 | 木头 | 地球 |
红色的 | 现代的 | 木头 | 地球 |