我正在通过 symfony2 应用程序中的 Doctrine 查询我的 mysql 数据库。我设置了一个基本表,其中包括 ID 号(“id”)、姓名(“name”)以及最后一列,表示该人是否已被联系(“已联系”),用 0 或 1 表示。我可以查询并获取总查询数(在 Controller 中用 $inquiryCountTotal 描述就可以了。
我正在努力计算已联系的行数。我想我可以计算联系列中值为 1 的行,或者我可以对联系列中的所有行进行求和。
出于某种原因,它似乎正在对 id 进行求和,因为我有 8 个 id,但它吐出的数字是 36。
我哪里出错了?提前致谢!
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('EABundle:Inquiry')
->findBy(array(), array('id'=>'DESC'));
$inquiryCountTotal = $em->createQuery("
SELECT count(id)
FROM EABundle:Inquiry id
")->getSingleScalarResult();
//This is the part I'm struggling with...
$inquiryCount = $em->createQuery("
SELECT sum(contacted)
FROM EABundle:Inquiry contacted
")->getSingleScalarResult();
return $this->render('EABundle:Inquiry:index.html.twig', array(
'entities' => $entities,
'inquiryCount' => $inquiryCount,
'inquiryCountTotal' => $inquiryCountTotal
));
}
最佳答案
Doctrine 将别名解释为实体的 id。
试试这个:
$inquiryCount = $em->createQuery("
SELECT sum(i.contacted)
FROM EABundle:Inquiry i
")->getSingleScalarResult();
关于mysql - 计算具有特定值的行时出现问题 - Doctrine、Symfony2、mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25097145/