【问题标题】:Determining popular tags using mysql?使用mysql确定流行标签?
【发布时间】:2011-01-28 23:33:18
【问题描述】:

我有两张桌子:

posts{id,post,tag_id,date}
tags{id,tag,date}

我想从 post 表中检索最近 12 小时内使用的最流行的标签。

¿我怎样才能做到这一点?
谢谢。

【问题讨论】:

  • tags 日期表示什么?
  • 标签的创建时间!!我更关心 post 表中的日期,以获取最新的 12 小时

标签: php mysql tags


【解决方案1】:

我认为这应该可行:

SELECT tags.tag, count(*) AS count
    FROM posts INNER JOIN tags
    ON (posts.tag_id = tags.id)
    WHERE posts.date >= SUBTIME(NOW(), '12:00:00')
    GROUP BY tags.id
    ORDER BY count(*) DESC

我在 12 小时内创建了 3 篇以“SQL”为标签的帖子和 2 篇以“PHP”为标签的帖子,但其中只有一篇在 12 小时内创建。然后上面的查询返回:

tag count
SQL 3
PHP 1

【讨论】:

  • 谢谢,但这给了我一个空集,我确实有一个小时前创建的标签,并且已经被使用了很多!!!
  • 好的,您也有在 12 小时内创建的帖子?您的列有哪些类型?
【解决方案2】:

要从过去 12 小时内按降序排列最受欢迎的标签,您可以这样做:

SELECT tag  
FROM tags 
WHERE id IN (
    SELECT tag_id FROM posts WHERE date >= SUBTIME(NOW(), '12:00:00')
)
ORDER BY COUNT(id) DESC

【讨论】:

  • 他的意思是SUBTIME。下次谷歌mysql SUB_TIME,你会在2秒内找到答案。
  • @webbiedave:感谢您的更正。我已经更新了答案。抱歉打错了……在我的手机上:S
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 2020-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多