php - zend Framework 2 Db 选择列分组

标签 php mysql zend-framework2

我需要查询我的数据库

这是我的数据库数据

CREATE TABLE IF NOT EXISTS `order_main` (
`om_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`om_raren` varchar(20) NOT NULL COMMENT 'serial number',
`om_total` int(11) NOT NULL COMMENT 'money',
`om_freight` int(11) NOT NULL COMMENT 'freight',
`om_amount` int(11) NOT NULL COMMENT 'money + freight',
`om_status` int(11) NOT NULL COMMENT 'Order Status:1)Unpaid 2)Paid 3)Cancel 4)Payment     
success,
`om_created` datetime NOT NULL COMMENT 'create time',
PRIMARY KEY (`om_id`)
)

我的需求,获取4种数据

1) 未指定“om_status”、“om_created”= 2013-01 项目计数

2) 未指定 'om_status' 、'om_created' = 2013-01' sum('om_total')

3) 'om_status' = 4,'om_created = 2013-01' 项目计数

3) 'om_status' = 4 , 'om_created' = 2013-01' sum('om_total')

第一和第二,我知道怎么写,像这样:

$select = $this->tableGateway->getSql()->select();
$select->columns(array(
            'Nub' => new \Zend\Db\Sql\Expression('COUNT(*)'),
            'Price' => new \Zend\Db\Sql\Expression('sum(`om_total`)'),
        ));
$select->where("DATE_FORMAT(`om_created`, '%Y-%m')  = 2013-01");
$row = $this->tableGateway->selectWith($select)->toArray();

但是第三个和第四个,我不知道添加那个Sql查询有多无能,我想在同一个sql字符串中得到4种结果

谢谢

最佳答案

只需添加另一个where():

...
$select->where("DATE_FORMAT(`om_created`, '%Y-%m')  = 2013-01");
$select->where("om_status = 4");
...

关于php - zend Framework 2 Db 选择列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20756492/

相关文章:

php - 在每个实例上运行计划的 Azure PHP 脚本

php - 如何将 "natural join"转换为 yii2 Active 查询?

php - 学习mysql insert返回语法错误

php - 使用实体管理器从表中选择列的最大值的最简单、最简单的方法是什么?

php - ZF2 - ServiceManager 注入(inject) 84 个表......乏味

php - Laravel 4 使用数据从 Controller 向外部 URL 发出发布请求

php - 如何覆盖 laravel fortify Controller

php - 在wordpress上将标题与缩略图分开

php - 'who has used it' 问题

php - 如何在 zend framework 2 中呈现页面?