где в статье MySQL сортировать по значимости - PullRequest
1 голос
/ 02 апреля 2012

У меня есть таблицы с именами news и tags_news.Учитывая идентификатор новостей, я должен выводить соответствующие статьи на основе тегов.Итак, у меня есть список тегов, таких как Google, Facebook, я использую следующий запрос

select 
  t2.title,
  t2.content,
  t2.id
from
  tags_news as t1
  left join news as t2 on t2.id=t1.news 
where t1.tag in ('facebook','google');

все работает нормально, но статьи возвращаются в порядке их идентификатора.Я хочу иметь статьи, которые имеют больше совпадений с заданными тегами.

1 Ответ

1 голос
/ 02 апреля 2012

Надеюсь, я правильно понял ваш вопрос.

Попробуйте следующее:

select 
t2.title,
t2.content,
t2.id,
count(*) as numberOfTagsRelatedToTheNews
from
tags_news as t1
left join news as t2 on t2.id=t1.news 
where t1.tag in ('facebook','google')
group by t2.title
order by numberOfTagsRelatedToTheNews desc

Это то, что вы ищете?Спросите, есть ли у вас вопросы к этому ответу.

...