我正在 zend 框架 2 中开发一个应用程序,需要从数据库表中获取一些计数值。该表包含具有“活动”和“已阻止”列的成员
我想获取成员总数以及活跃成员数和被阻止成员数。
请注意,表中将有大量成员,因此“慢解决方案”不是一种选择。
谢谢你的帮助!
我正在 zend 框架 2 中开发一个应用程序,需要从数据库表中获取一些计数值。该表包含具有“活动”和“已阻止”列的成员
我想获取成员总数以及活跃成员数和被阻止成员数。
请注意,表中将有大量成员,因此“慢解决方案”不是一种选择。
谢谢你的帮助!
使用这 2 列,您需要执行以下操作:
SELECT SUM(active) as nrActive, SUM(if(blocked = 'yes', 1, 0)) as nrBlocked FROM members;
在此示例中,“活动”可以具有值 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))')
);
(免责声明:我写了这个,所以可以有错字,例如)