Я сделаю поисковый запрос, который выполняет поиск по каждому отдельному слову в моей таблице с использованием SQL Server.Запрос должен работать в следующей ситуации:
- Запрос должен искать в полях
colour
, style
, marerial
и shape
как оператор или - Запрос должен искать по каждому отдельному поисковому слову (например,
blue
, red
, modern
и wood
) со всеми возможными комбинациями между этими словами. - Поиск значений долженсодержать в столбце, например, как оператор.
Это означает, что для этих слов я могу найти продукты только с [[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') ;
Это результат:
| colour | style | material | shape |
|-----------|----------|--------------------|---------------|
| Modern | Aluminum | Round | |
| Modern | Metal | Round | |
| Albast | Modern | Acrylic | Round |
| Albast | Modern | Glass | Cylinder |
| Albast | Modern | Glass | Other |
| Albast | Modern | Glass | Rectangle |
| Albast | Modern | Glass | Round |
| Albast | Modern | Glass | Square |
| Albast | Modern | Synthetic Material | Globe |
| Albast | Modern | Synthetic Material | Round |
| Amber | Modern | Steel | Round |
| Black | Cottage | Wood | |
| Black | Cottage | Wood | Round |
| Black | Modern | Reflector | |
| Black | Modern | Abs | Round |
| Black | Modern | Acrylic | Round |
| Black | Modern | Aluminum | |
| Black | Modern | Aluminum | Corner-Shaped |
| Black | Modern | Aluminum | Cylinder |
| Black | Modern | Aluminum | Half-Round |
| Black | Modern | Aluminum | Other |
| Black | Modern | Aluminum | Oval |
| Black | Modern | Aluminum | Rectangle |
| Black | Modern | Aluminum | Round |
| Black | Modern | Aluminum | Square |
| Black | Modern | Cotton | Hexagon |
| Black | Modern | Cotton | Round |
| Black | Modern | Glass | Rectangle |
Но я вижу, что результат на основе одного или нескольких слов может быть найден или нет.
Я также пробовал этот запрос, но не нашел результатов.
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') ;
Я не могу определить, является ли слово цветом, формой, стилем или материалом.
Обновление: ожидаемый результат
| colour | style | material | shape |
|-----------|--------------|--------------------|---------------|
| blue | modern style | wood | round |
| red | modern | wood | Rectangle |
| red | modern | wood | round |
| blue | modern | wood | Rectangle |
| blue | modern | wood | globe |
| red | modern | wood | globe |