Я использую следующий запрос для поиска блогов, содержащих определенные слова в их названиях. Каждое слово записывается как уникальное в тегах таблицы, а затем ссылается на фактический блог в таблице tags_titles. t.label - это место, где хранятся фактические слова тега.Mysql - поиск блогов по тегам
По какой-то причине этот запрос не дает никаких результатов, если я не введу число, и в этом случае он создает все блоги без фильтрации. Как я могу заставить это работать?
SELECT tt.blog_id, b.title, COUNT(*) AS total_matches
FROM tags_titles AS tt
INNER JOIN tags AS t
ON tt.tag_id = t.tag_id
LEFT JOIN blogs AS b
ON tt.blog_id=b.blog_id
WHERE t.label IN ('boats','planes')
GROUP BY tt.blog_id
ORDER BY total_matches DESC
Возможно, вам нужно использовать 'WHERE t.label LIKE '% boat%' ИЛИ t.label LIKE '% plane%''? – fthiella
Я не хочу использовать LIKE из-за потери производительности. Это могут быть точные совпадения, которые не будут проблемой! :) –
Что значит «если я не вводил число» .. где вы вставляете номер? – mcriecken