【问题标题】:Need help building hash tag trending query in mysql需要帮助在 mysql 中构建哈希标签趋势查询
【发布时间】:2013-04-29 17:28:49
【问题描述】:

我正在尝试构建一个查询来衡量“趋势”哈希标签,如推文。我有一个表 tweets 和一个列消息 (varchar)

基本上我只想按哈希标签对消息进行分组,但如果消息字段中有超过 1 个哈希标签,它就会崩溃,这就是我到目前为止所拥有的

SELECT count(message) as count, `message` FROM `tweets` WHERE `message` RLIKE '^#[[:alnum:]]' GROUP BY `tweets`.`message` ORDER BY `count` DESC

将输出以下行

"4","#sushi"
"3","#coffee"
"3","#wine"
"1","#coffee #park"
"1","#drinking"
"1","#steak"
"1","#pizza"
"1","#pasta"
"1","#food"

第四行是我希望两个哈希标签自己合计的问题,不确定我是否可以仅使用 mysql 来实现。

【问题讨论】:

  • 可以有两个以上的哈希标签 - 是无限的吗?
  • 您将不得不拆分列other post that might help
  • 是的,您可以通过引用自己的表格来实现这一点。首先你必须得到countmessage。然后尝试使用相同的查询引用获取第三列。无论如何,第三列是什么?
  • 值存储为单个值,如何将它们区分为不同的哈希标签?这种设计会使事情变得不必要的复杂。

标签: mysql sql regex hashtag trending


【解决方案1】:

您的专栏是message,但您想按主题标签分组。从数据库设计 POV 来看,您的表不在 1NF 中,因为 message 实际上包含 重复组 的哈希标记。在纠正之前,您将无法在表上使用 SQL 的强大功能。

您需要的是另一个表hashtags,其中每条消息中的每个标签都有一行。一旦你有了它,查询实际上会自己写。

【讨论】:

    猜你喜欢
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    相关资源
    最近更新 更多