-1

我正在 zend 框架 2 中开发一个应用程序,需要从数据库表中获取一些计数值。该表包含具有“活动”和“已阻止”列的成员

我想获取成员总数以及活跃成员数和被阻止成员数。

请注意,表中将有大量成员,因此“慢解决方案”不是一种选择。

谢谢你的帮助!

4

1 回答 1

0

使用这 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))')
);

(免责声明:我写了这个,所以可以有错字,例如)

于 2013-10-23T18:03:09.797 回答