Есть форма с checkbox'ами, которая представляет собой фильтр тегов.
Мне нужно произвести поиск по тегам, рассортированый по приоритету.
Пример:
Пользователь выбрал теги A, B, C
Первыми идут посты у которых есть все теги (ABC)
Вторыми идут посты у которых есть хотя бы два из них (AB, BC, AC)
Последними идут посты у которых есть хотя бы один тег (A, B, C)
Соответственно, если пользователь выбрал четыре и больше тегов, там количество комбинаций возрастает (ABC, ABD, ACD, AD, BD и т.д.)
1. Frostbite - 07 Сентября, 2014 - 12:30:48 - перейти к сообщению
2. Мелкий - 07 Сентября, 2014 - 12:38:39 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT post_id, count(0) AS tags_match FROM posts_tags WHERE tag_id IN ('a','b','c') GROUP BY post_id ORDER BY tags_match DESC