Php MySQL选择最后六个月,然后选择最后几年

Php MySQL选择最后六个月,然后选择最后几年,php,mysql,date,select,Php,Mysql,Date,Select,我有一个MySQL数据库,用于我正在处理的博客页面。我需要一些帮助来实现我心目中的归档菜单 DB有一个标题为“日期”的列作为时间戳格式。我想选择最近六个月发表的一篇文章。我的问题是,如何从“日期”列中选择具有不同月份值的最后六个条目。查询应该忽略日期和时间,只有月份才重要 我的一个想法是,在数据库中添加另一列,只存储年份和月份值。其中我可以做“选择”而不是“每月”限制6;你同意这样做吗 在我选择了这些月份之后,对于所有较旧的文章,我想在几年内都这样做。我如何选择所有发表文章的年份,除了上一个月的

我有一个MySQL数据库,用于我正在处理的博客页面。我需要一些帮助来实现我心目中的归档菜单

DB有一个标题为“日期”的列作为时间戳格式。我想选择最近六个月发表的一篇文章。我的问题是,如何从“日期”列中选择具有不同月份值的最后六个条目。查询应该忽略日期和时间,只有月份才重要

我的一个想法是,在数据库中添加另一列,只存储年份和月份值。其中我可以做“选择”而不是“每月”限制6;你同意这样做吗

在我选择了这些月份之后,对于所有较旧的文章,我想在几年内都这样做。我如何选择所有发表文章的年份,除了上一个月的选择所涵盖的年份之外


很抱歉,如果这个问题有点让人困惑,我希望您能理解并帮助我。

您可以使用
行号来实现这一点

SELECT ROW_NUMBER() OVER(PARTITION BY Month(Date) ORDER BY Month(Date) DESC) AS ArticleOrder
,ArticleID
, etc
FROM YourTable

查询月份。以“年-月”格式返回


这个问题有点让人困惑。我相信你可以问一个不那么让人困惑的问题,也许可以参考SO指南和/或之前的问题。
SELECT DATE_FORMAT(`Date`,'%Y-%m') m FROM `table` GROUP BY m ORDER BY m DESC LIMIT 6