我在社区论坛上有一个“喜欢”系统。所有内部喜欢都存储在一个名为log_like的数据库中。MySQL - 在过去一个月内获得最“喜欢”的用户
CREATE TABLE `log_like` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_member` mediumint(8) NOT NULL,
`id_message` int(10) NOT NULL,
`id_poster` mediumint(8) NOT NULL DEFAULT '0',
`time` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `id_member` (`id_member`),
KEY `id_message` (`id_message`)
) ENGINE=MyISAM;
我需要得到上个月最喜欢的成员ID(上面DDL中的id_poster字段)。所以我可能需要GROUP和COUNT在过去的月份的记录中出现相同的“id_poster”多少次。我想限制它到最喜欢的10个。字段“time”存储unix时间以供参考。
不幸的是,我不知道如何做到这一点。谁能帮忙?
非常感谢。但是,我假设date_sub()基于MySQL日期,并且我在Unix时间戳(自epoch以来的秒数)中有时间参考。因此,我的MySQL查询没有结果。 – BornKillaz
我添加了'unix_timestamp()'函数。你自己也无法弄清楚这一点吗? – Barmar
是的,在我回复之后,我添加了UNIX_TIMESTAMP(),因为我的时间字段位于unix时间戳记(自epoch以来的秒数)。但是,我没有得到每个顶级成员的喜欢SUM,而是在结果集中得到整数“1”。我想汇总每个成员,换句话说,数据库中引用前10位id_poster的次数(一行等于一个)。 – BornKillaz