我有一個包含帖子的表格,我想要生成一個圖表,顯示過去最後30分鐘內有多少帖子,以及最近30分鐘之前發佈的帖子等。帖子由其post_handler post_status。在MySQL中生成統計信息
表結構看起來像這樣。
CREATE TABLE IF NOT EXISTS `posts` (
`post_title` varchar(255) NOT NULL,
`post_content` text NOT NULL,
`post_date_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`post_handler` varchar(255) NOT NULL,
`post_status` tinyint(4) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `post_status` (`post_status`),
KEY `post_status_2` (`post_status`,`id`),
KEY `post_handler` (`post_handler`),
KEY `post_date_added` (`post_date_added`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2300131 ;
我希望收到的結果,按post_date_added排序。
period_start period_end posts
2011-12-06 19:23:44 2011-12-06 19:53:44 10
2011-12-06 19:53:44 2011-12-06 20:23:44 39
2011-12-06 20:23:44 2011-12-06 20:53:44 40
現在,我使用的解決方案,我有很多次,運行此查詢,然後將數據插入到從PHP腳本另一個表。
SELECT COUNT(*) FROM posts WHERE post_handler = 'test' AND post_status = 1 AND post_date_added BETWEEN '2011-12-06 19:23:44' AND '2011-12-06 19:53:44'
您是否知道其他解決方案?有沒有辦法運行一個查詢,也將結果插入到數據庫中,全部在一個查詢中?