我正在开发zend框架2中的应用程序,需要从数据库表中获取一些计数值。 该表包含“active”和“blocked”列
的成员我想知道会员总数以及活跃人数和被阻止会员人数。
请注意,表格中会有大量成员,因此“慢速解决方案”不是一种选择。
thanx求助!
答案 0 :(得分:0)
使用这两列,您需要执行以下操作:
SELECT SUM(active) as nrActive, SUM(if(blocked = 'yes', 1, 0)) as nrBlocked FROM members;
在此示例中,“active”可以具有值0或1,对于阻塞我假设为“是”和“否”,这样您就有两种情况的示例。
在ZF2中,您可以使用Zend \ Sql
撰写查询$sql = new \Zend\Db\Sql($dbAdapter);
$sql->from('members', array(
'nrActive' => new \Zend\Db\Sql\Expression('SUM(active)'),
'nrBlocked' => new \Zend\Db\Sql\Expression('SUM(if(blocked = "yes", 1, 0))')
);
(免责声明:我这样写了这个,所以可能有拼写错误,仅举例)