【问题标题】:How can I select a distinct value of year and month from a mysql table field format 2013-01-01如何从 mysql 表字段格式 2013-01-01 中选择不同的年份和月份值
【发布时间】:2014-01-06 11:08:31
【问题描述】:

我有如下数据表

"id","date_occurred","country","town","quantity"
"1","2012-06-01","England","Andover","82"
"2","2012-06-01","England","Colchester","569"
"3","2012-06-01","England","Farnham","1"
"4","2012-06-01","England","England","4"
"5","2012-06-01","England","America","13"
"6","2012-06-01","America","England","114"
"7","2012-06-02","England","Andover","4"
"8","2012-06-02","England","Colchester","207"
"9","2012-06-02","America","England","14"
"10","2012-06-03","England","Andover","3"
"11","2012-06-03","England","Colchester","72"
"12","2012-06-03","England","America","1"
"13","2012-06-03","America","England","15"
"14","2012-07-04","England","Andover","1"
"15","2012-07-04","England","Colchester","309"
"16","2012-07-04","England","America","4"
"17","2012-07-04","America","England","11"
"18","2012-08-05","England","Andover","2"
"19","2012-08-05","England","Colchester","319"
"20","2012-08-05","England","Farnham","1"
"21","2012-08-05","England","America","4"
"22","2012-08-05","America","England","25"
"23","2012-08-06","England","Andover","93"
"24","2013-06-06","England","Colchester","542"
"25","2013-06-06","England","Farnham","1"
"26","2013-06-06","England","England","4"
"27","2013-06-06","England","America","7"
"28","2013-06-06","America","England","115"

当我运行下面的独立查询时,我会产生我需要的结果。

给定月份查询中每个国家/地区每天的总销售额:

SELECT date_occurred, country, SUM(quantity)
FROM tableA 
WHERE YEAR(date_occurred) = 2013 AND MONTH(date_occurred) = 6
GROUP BY date_occurred, country

给定月份每个国家/地区每天的总销售额

2012-06-01 England 669
2012-06-01 America 114
2012-06-02 England 211 

我创建了一个 ajax 下拉列表来使用三个选择框查询数据库


问题

我的 Ajax 脚本产生 3 个变量
$date_o $国家 $镇

通过 $_POST

如何单独使用变量来创建上面的查询?

我的尝试

下面的查询使用 $country 变量并且有效。

 SELECT date_occurred, country, SUM(quantity) AS quantity
 FROM TableA
 WHERE YEAR(date_occurred) =2013
 AND MONTH(date_occurred) = 6 AND country ='$country'
 GROUP BY date_occurred , country = '$country'

但是我已经尝试了许多排列以仅使用 $_POSTED 值来生成查询 但一直没有成功。

**所需的输出如下所示。 **

 SELECT $date_o, $country, SUM(quantity) AS quantity
 FROM TableA
 WHERE YEAR($date_o) = year_part_of_$date_o
 AND MONTH($date_o) = month_part_of_$date_o AND country ='$country'
 GROUP BY $date_o , country = '$country'

我认为我需要从 $date_o 变量中删除月份和年份位,但无法解决。 欢迎任何简单的答案或建议!提前致谢。

【问题讨论】:

    标签: php mysql ajax


    【解决方案1】:
    $year = substr($date_o, 0, 4);
    $month = substr($date_o, 5, 2);
    

    如果月份不需要前导零,那么

    $month = ltrim(substr($date_o, 5, 2), '0');
    

    【讨论】:

      【解决方案2】:

      你可以试试

      $year = date('Y',strtotime($date_o));
      $month = date('n',strtotime($date_o));
      

      这可以将输出设为 2013, 6(不是 06:如果您需要 06 将 'm' 放在 'n' 的位置)

      【讨论】:

        猜你喜欢
        • 2015-05-21
        • 2012-02-24
        • 2012-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-21
        相关资源
        最近更新 更多