MySQL-如何对组应用限制?

MySQL-如何对组应用限制?,mysql,join,group-by,limit,Mysql,Join,Group By,Limit,我创建了一种博客引擎,根据时间戳将文章分类为月份和年份类别。我使用以下查询: SELECT MONTHNAME( post_time ) AS month , YEAR( post_time ) AS year FROM blog_posts GROUP BY year, month ORDER BY post_time DESC LIMIT 0 , 10 这将为我返回最新的十个帖子类别,如下所示: December 2010 November 2010 ... etc 我的问题是如何创建查

我创建了一种博客引擎,根据时间戳将文章分类为月份和年份类别。我使用以下查询:

SELECT MONTHNAME( post_time ) AS
month , YEAR( post_time ) AS year
FROM blog_posts
GROUP BY year,
month
ORDER BY post_time DESC
LIMIT 0 , 10
这将为我返回最新的十个帖子类别,如下所示:

December 2010
November 2010
...
etc
我的问题是如何创建查询以获取较旧/较新的类别

如果我有一个像*category_id*这样的列,我就可以很容易地使用它,并且有一定的限制, 但由于我只有一个月和一年的时间,我被困在这里了

非常感谢你的帮助,这对我来说是个谜

我的问题是如何创建查询以获取较旧/较新的类别

此查询:

SELECT  MONTHNAME(post_time) AS month, YEAR(post_time) AS year
FROM    blog_posts
GROUP BY
        year, month
ORDER BY
        post_time DESC
LIMIT 0, 10
按月份和年份分组,按月份和年份内随机发布的时间排序

由于这些随机帖子的顺序与月份和年份相对应,您的类别将以正确的顺序从近期到早期发布

更新:

要在2010年6月之前显示10个类别:

我的问题是如何创建查询以获取较旧/较新的类别

此查询:

SELECT  MONTHNAME(post_time) AS month, YEAR(post_time) AS year
FROM    blog_posts
GROUP BY
        year, month
ORDER BY
        post_time DESC
LIMIT 0, 10
按月份和年份分组,按月份和年份内随机发布的时间排序

由于这些随机帖子的顺序与月份和年份相对应,您的类别将以正确的顺序从近期到早期发布

更新:

要在2010年6月之前显示10个类别:


如果博客文章有类别id

SELECT MONTHNAME( post_time ) AS
month , YEAR( post_time ) AS year
FROM blog_posts
GROUP BY year,
month
ORDER BY category_id DESC
LIMIT 0 , 10

如果博客文章有类别id

SELECT MONTHNAME( post_time ) AS
month , YEAR( post_time ) AS year
FROM blog_posts
GROUP BY year,
month
ORDER BY category_id DESC
LIMIT 0 , 10

…获取较旧/较新的类别…:较旧和较新的类别是什么?似乎我不太理解你的问题,你能用一个数据和期望输出的例子最好地澄清一下……获取旧/新类别…:比什么更旧和更新?似乎我不太理解你的问题,请你用一个数据和期望输出的例子来最好地澄清一下。博客帖子有自己的id,但我没有类别id,也就是说我的问题博客帖子有自己的id,但我没有类别id,这实际上是我的问题我想我的问题的核心可能是,我能把年份和月份作为限制的起始参数,然后从2010年6月开始获取接下来的10个类别吗?或者有没有办法获得10个上个月或下个月/年的组合类别?如果我的查询输入是当前月/年。我没有这样的类别列,我使用GROUP BY将同一个月和同一年的帖子分组到虚拟类别中。因此,我所拥有的只是月份和年份,mysql可以继续为我获取之前的10个月/年组合吗?谢谢,我明白了重点,但是这个查询一直存在语法错误1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在第行“WHERE post_time<'2010-06-01'ORDER BY post_time DESC LIMIT 0,10”附近使用的正确语法5@Freelancer:是的,我弄乱了条款的顺序,现在应该可以了。我想我的问题的核心可能是我可以把年和月作为限制的起始参数,然后从2010年6月开始获取接下来的10个类别?或者有没有办法获得10个上个月或下个月/年的组合类别?如果我的查询输入是当前月/年。我没有这样的类别列,我使用GROUP BY将同一个月和同一年的帖子分组到虚拟类别中。因此,我所拥有的只是月份和年份,mysql可以继续为我获取之前的10个月/年组合吗?谢谢,我明白了重点,但是这个查询一直存在语法错误1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在第行“WHERE post_time<'2010-06-01'ORDER BY post_time DESC LIMIT 0,10”附近使用的正确语法5@Freelancer:是的,我弄乱了条款的顺序,现在应该可以了。