Как сделать выборку и поиск по трём таблицам?

Пишу поиск товаров для сайта. Поиск должен быть максимально релевантным. Есть множество таблиц, абсолютно абстрагированных друг от друга.
То есть, для каждого типа товаров есть таблица с полями name и html (полное описание с разметкой WYSIWYG).
Поисковая строка может состоять из множества слов. Для одной таблицы все супер, делаю запрос так:

SELECT *, (
IF (tb_table1.name LIKE '%Ляля лала%', 2, 0) + 
IF (tb_table1.name LIKE '%Ляля%', 1, 0) + 
IF (tb_table1.name LIKE '%лала%', 1, 0) + 
IF (tb_table1.html LIKE '%Ляля лала%', 2, 0) + 
IF (tb_table1.html LIKE '%Ляля%', 1, 0) + 
IF (tb_table1.html LIKE '%лала%', 1, 0)
) AS points FROM tb_table1 ORDER BY points DESC LIMIT 20

Но как это провернуть и с остальными таблицами?
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
Релевантный поиск на лайках? Мда.
Возьмите нормальный FTS (elasticsearch, shpinx), ну или хотя бы его встроенное в mysql подобие dev.mysql.com/doc/refman/5.7/en/fulltext-search.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы