Zend framework 使用zend_db_select PHP在一列中计算不同的单元格
我试图计算一列(测试)中特定单元格的出现次数,然后能够在一个查询中以数组的形式回显它们。exmp 我希望能够将每个测试的计数作为如下所示的数组进行响应Zend framework 使用zend_db_select PHP在一列中计算不同的单元格,zend-framework,select,count,distinct,Zend Framework,Select,Count,Distinct,我试图计算一列(测试)中特定单元格的出现次数,然后能够在一个查询中以数组的形式回显它们。exmp 我希望能够将每个测试的计数作为如下所示的数组进行响应 $result['echo'] = 2 $result['holter'] = 1 $result['angio'] = 3 我能够通过多个查询(每个测试一个查询)来实现每个测试的数量,这似乎效率很低,而以数组的形式获得结果似乎是解决方案。使用zend_bd_select,非常感谢您的帮助 这使用了一个简单的Zend_Db_Select查询和一
$result['echo'] = 2
$result['holter'] = 1
$result['angio'] = 3
我能够通过多个查询(每个测试一个查询)来实现每个测试的数量,这似乎效率很低,而以数组的形式获得结果似乎是解决方案。使用zend_bd_select,非常感谢您的帮助 这使用了一个简单的Zend_Db_Select查询和一个循环来将结果处理成一个数组,如图所示
$groups = array(); // same as $result in your question
$select = $dbTable->select()
->from($dbTable, array('user_id', 'test'))
->where('user_id = ?', $user_id);
$result = $select->query();
while (($row = $result->fetch()) !== false) {
$test = $row['test'];
if (!isset($groups[$test])) {
$groups[$test] = 1;
} else {
$groups[$test]++;
}
}
最后,$groups
应通过test
列值索引,并计算其发生的次数。我不相信只有一个查询可以实现这个结果,至少在没有存储过程或运行许多子查询的情况下是这样
$sql = $select->from('table', array('test', 'COUNT(test)'))->group('test');
$array = $db->fetchPairs($sql);
$sql = $select->from('table', array('test', 'COUNT(test)'))->group('test');
$array = $db->fetchPairs($sql);