其中in子句mysql按相关性排序

时间:2012-04-02 02:06:41

标签: mysql sorting where

我有名为news和tags_news的表。鉴于新闻ID,我必须根据标签输出相关文章。所以我有一个标签列表,如谷歌,脸书,我正在使用以下查询

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');

一切正常,但文章按照他们的ID顺序返回。我想要有与给定标签更多匹配的文章。

1 个答案:

答案 0 :(得分:1)

我希望我理解你的问题。

尝试以下方法:

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

这是你要找的吗?如果您对此答案有任何疑问,请询问。