БД MySQL
Есть таблица items с колонками id(int) | name(varchar) | company_id(int)
1. Нужно выбрать все совпадения с таблицы items по фразе и словам из которых она состоит, совпадения должны быть строго в порядке(полное совпадение, затем все остальные варианты)
2. Все результаты в группах(полное/частичное совпадения) должны быть отсортированы по company_id
3. Нужно иметь возможность использовать limit с двумя параметрами для пагинации(если использовать limit 3, 10 то первые 3 совпадения нужно пропустить и взять следующие 10)
4. Результаты не должны дублироваться
5. Регистронезависимость (поиск должен находить одни и те же варианты по строках "блок", "Блок", "БЛОК")
Например ищем по строке "Системный блок", результаты должны быть следующими
id | name | company_id
2 | "Системный блок" Lenovo | 3
4 | "Системный блок" Dell | 3
3 | "Системный блок" Lenovo | 4
25 | "Блок" питания 400w | 3
26 | "Блок" питания 500w | 3
27 | "Блок" питания 600w | 3
28 | "Блок" питания 700w | 3
29 | Наружный "блок" кондиционера Cooper&Hunter | 3
35 | "Блок" питания 400w | 4
36 | "Блок" питания 500w | 4
37 | "Блок" питания 600w | 4
38 | "Блок" питания 700w | 4
39 | "Системный" анализ посещаемости | 4
41 | "Блок" розетки | 5
2/4/3 результаты полного совпадения(отсортированы по company_id)
25/26/27/28/29 результаты частичного совпадения по словам "Системный", "Блок". Тоже все отсортировано по company_id = 3
35/36/37/38/39 результаты частичного совпадения по словам "Системный", "Блок". Тоже все отсортировано по company_id = 4
41 результаты частичного совпадения по словам "Системный", "Блок". Тоже все отсортировано по company_id = 5
Опубликован 16.10.2020 в 16:08 Последнее изменение: 16.10.2020 в 16:08
Заказ находится в архиве