Php 基于每月的结果查询

Php 基于每月的结果查询,php,mysql,Php,Mysql,我有一个查询,可以根据每个月和国家获得购买物品的数量 SELECT COUNT( `country` ) as item, `country`, MONTH(purchase_date) AS Month, YEAR( purchase_date) AS year FROM charmy_purchase WHERE YEAR(purchase_date)='20112' GROUP BY country,MONTH(pur

我有一个查询,可以根据每个月和国家获得购买物品的数量

SELECT   COUNT( `country` ) as item,
         `country`,
         MONTH(purchase_date) AS Month,
         YEAR( purchase_date) AS year
FROM     charmy_purchase
WHERE    YEAR(purchase_date)='20112'
GROUP BY country,MONTH(purchase_date)
ORDER BY country ASC
我得到了这个结果

 item   country  Month  year
    2   India       5   2012
    1   India       6   2012
    1   Malasiya    5   2012
    3   Singapure   1   2012
    1   Singapure   4   2012

我不想让“议会”重复。有没有办法做到这一点。

不清楚您希望得到什么样的输出。但您可以按国家、月份(购买日期)从
组中删除
月份(购买日期)

这将给你不同的国家。但如果一个国家有更多的机会,它也会给你任何月份和年份

编辑 如果希望月份和年份以逗号分隔的方式列在一行中,请尝试以下操作:

SELECT   COUNT( `country` ) as item,
     `country`,
     group_concat(MONTH(purchase_date)) AS Months,
     YEAR( purchase_date) AS year
FROM     charmy_purchase
WHERE    YEAR(purchase_date)='2012'
GROUP BY country
ORDER BY country ASC

请参见此示例:

尝试分组,如下所示:

SELECT   COUNT( `country` ) as item,
         `country`,
         GROUP_CONCAT(MONTH(purchase_date)) AS Months,
         YEAR( purchase_date) AS year
FROM     charmy_purchase
WHERE    YEAR(purchase_date)='2012'
GROUP BY country
ORDER BY country ASC

您希望结果集看起来像什么?不太清楚。按国家、月份(购买日期)从
组中删除
月份(购买日期)
。这就是你想要的吗?是的,我得到了不同的国家,但是对于所有项目,默认情况下显示为5月。@Raj:那么你希望得到什么样的产出呢?我希望国家(印度,…)每个月也只能单独出现一次。例:印度,项目(2,1),月(5,6)是的,没错,但项目只是增加了。我想要的物品是monthEx:item(0,1)@Raj:我不知道你的意思。用预期输出的适当示例更新您的问题。在月份字段中,我得到“[BLOB-5b]、[BLOB-1b]、[BLOB-13b]”。我不知道这是什么意思。项目刚刚添加(1+2)
SELECT   COUNT( `country` ) as item,
         `country`,
         GROUP_CONCAT(MONTH(purchase_date)) AS Months,
         YEAR( purchase_date) AS year
FROM     charmy_purchase
WHERE    YEAR(purchase_date)='2012'
GROUP BY country
ORDER BY country ASC