mysql分組取最大N條記錄

1.代表Post CREATE TABLE Post ( ID int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵', PublishTime datetime NOT NULL COMMENT '發帖時間', UserID int(11) NOT NULL COMMENT '用戶ID', PRIMARY KEY (ID), KEY UserID_IDX (UserID), KEY PublishTime_IDX (PublishTime) ); 2,問題:顯示最新發表的5條帖子,可是每一個用戶的帖子數不能超過2條 3.例子:insert Post(PublishTime,UserID) values('2014-02-15 00:00:00',1),('2014-02-13 00:00:00',1),('2014-02-14 00:00:00',2),('2014-02-14 00:00:00',1),('2014-02-15 00:00:00',2),('2014-02-17 00:00:00',2),('2014-02-19 00:00:00',3);code

+----+---------------------+--------+ | ID | PublishTime | UserID | +----+---------------------+--------+ | 1 | 2014-02-15 00:00:00 | 1 | | 2 | 2014-02-13 00:00:00 | 1 | | 3 | 2014-02-14 00:00:00 | 2 | | 4 | 2014-02-14 00:00:00 | 1 | | 5 | 2014-02-15 00:00:00 | 2 | | 6 | 2014-02-17 00:00:00 | 2 | | 7 | 2014-02-19 00:00:00 | 3 | +----+---------------------+--------+it

4 解決:select * from Post a where 2>(select count(*) from Post where UserID=a.UserID and PublishTime>a.PublishTime) order by PublishTime desc limit 5; +----+---------------------+--------+ | ID | PublishTime | UserID | +----+---------------------+--------+ | 7 | 2014-02-19 00:00:00 | 3 | | 6 | 2014-02-17 00:00:00 | 2 | | 1 | 2014-02-15 00:00:00 | 1 | | 5 | 2014-02-15 00:00:00 | 2 | | 4 | 2014-02-14 00:00:00 | 1 | +----+---------------------+--------+ 5.解決本質:date

相關文章
相關標籤/搜索