Приветствую!
Подскажите пожалуйста, как решить вроде-бы не сложную задачу, но я не могу сообразить
Как создать вьюс с открытым фильтром по тайтлу с следующим функционалом, допустим ввел «поисковая строка» получить выдачу:
SELECT * FROM node WHERE title LIKE "%поисковая строка%" ORDER BY created DESC и затем сразу SELECT * FROM node WHERE title LIKE "%поисковая%" AND title LIKE "%строка%" AND title NOT LIKE "%поисковая строка%" ORDER BY created DESC
Т.е. чтобы это было одним запросом, остальные фильтры пейджинг и так далее чтобы были едины!
Спасибо!
Комментарии
Сомнительно, что легко получится реализовать пагинацию: в результатах первого запроса может быть больше записей, чем указано в настройках пагинации, в этом случае второй запрос вообще не следует выполнять, на следующей странице пагинации - надо вывести оставшиеся результаты первого запроса и во втором запросе уменьшить LIMIT на кол-во результатов первого запроса ну т.п.
Похоже, что целью является сделать выдачу результатов поиска, отсортированных как бы по релевантности - сначала точные совпадения, затем ноды, в заголовках которых встречаются искомые слова поискового запроса.
Для этого есть Search API
Ключевое слово: union.
https://www.drupal.org/docs/7/api/database-api/dynamic-queries/unions
Большое спасибо! ОНО!