我在数据库中有6条记录。 3来自用户1,2来自用户2,1来自用户3。
我想通过user_id对它们进行计数,因此最终结果将为3。它总是返回表中所有记录的计数。返回6。
我的功能:
return $this->getDeviceRepository()
->createQueryBuilder('tlu')
->select('COUNT(tlu.user_id)')
->getQuery()
->getResult();
我在数据库中有6条记录。 3来自用户1,2来自用户2,1来自用户3。
我想通过user_id对它们进行计数,因此最终结果将为3。它总是返回表中所有记录的计数。返回6。
我的功能:
return $this->getDeviceRepository()
->createQueryBuilder('tlu')
->select('COUNT(tlu.user_id)')
->getQuery()
->getResult();
您有2个解决方案(使用groupBy或countDistinct)
return $this->getDeviceRepository()
->createQueryBuilder('tlu')
->select('COUNT(tlu.user_id)')
->groupBy('tlu.user_id')
->getQuery()
->getResult();
或
return $this->getDeviceRepository()
->createQueryBuilder('tlu')
->select('COUNT(tlu.user_id)')
->countDistinct('tlu.user_id')
->getQuery()
->getResult();
,
是的,我们可以按照以下步骤进行
getResult()->count();
或
return $this->getDeviceRepository()
->createQueryBuilder('tlu')
->select('COUNT(tlu.user_id)')
->countDistinct('tlu.user_id')
->getQuery()
->getSingleScalarResult();