我在社區論壇上有一個「喜歡」系統。所有內部喜歡都存儲在一個名爲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