我希望在特定日期期间每天对我的文章进行计数,这样我就可以获得 40 天的 40 条计数的数组。
CREATE TABLE IF NOT EXISTS `articles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`caption` varchar(255) NOT NULL,
`author_id` int(11) NOT NULL,
`date_added` datetime NOT NULL,
`body` text NOT NULL,
`description` varchar(500) NOT NULL,
`location` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `author_id` (`author_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
我不是 MySQL 专家,到目前为止我去过的最远的是:
$sql = 'SELECT date_added FROM articles ';
$sql .= 'WHERE date_added > ' . '"' . $mysql_datetime_start . '" AND ';
$sql .= 'date_added < ' . '"' . $mysql_datetime_end . '" ';
$sql .= 'GROUP BY date_added ';
比我想进入循环,但必须有一些更好的单一查询解决方案。
这是针对我网站上的日历的,因此一次查询可以节省大量处理器时间。
希望有人帮忙。谢谢。
最佳答案
您可以使用 MySQL 的 DATE
函数仅分离出 DATETIME
列的日期部分,然后按其分组。
SELECT DATE(date_added), COUNT(*) FROM articles
WHERE date_added BETWEEN $mysql_datetime_start AND $mysql_datetime_end
GROUP BY DATE(date_added);
关于php - 获取特定日期范围内的文章数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7706625/