0

mysql中是否有一个查询来获取每年每个月的最新3条记录?还是应该通过 Loop 来完成?

IE

YEAR 2011

january 

Record 1
Record 2
Record 3

May 

Record 1
Record 2
Record 3

September 

Record 1
Record 2
Record 3

YEAR 2012

August 

Record 1
Record 2
Record 3

Nov 

Record 1
Record 2
Record 3

Dec 

Record 1
Record 2
Record 3

等等。

猜测可以通过循环实现,但不确定实现这一目标的更好方法是什么。

4

1 回答 1

1

尝试使用一些示例应用程序。请记住,我这样做是为了您可以根据需要使用命名约定。

首先创建的数据库表如下。我已将此表命名为“三个月”


id auto_increament,
title varchar 255,
created date

标题只是为了确保不重复的结果,

现在创建一个 php 文件并建立数据库连接等。

现在在该页面内的查询下方复制粘贴。


SELECT YEAR(created) as stat_year,
       MONTH(created) as stat_month,
       COUNT(*) as stat_count,
       title,
       GROUP_CONCAT(created) as FinalResult,
       id
FROM
      `threemonth`
GROUP BY stat_year,stat_month
ORDER BY created DESC

上面的查询将输出如下所示的内容。


stat_year = 2012
stat_month = 12
stat_count = 2
FinalResult = comma separated date listing becaue of concating result.
title and id  

现在在显示记录时,按您的意愿显示。

只需分解逗号分隔的已创建字段并仅显示前三个记录即可。

于 2012-12-05T05:39:28.003 回答