php - doctrine 中的子查询计数 - querybuilder

标签 php symfony doctrine

我有一个简单的查询:

$this->qb->select('l.value')
        ->addSelect('count(l) AS cnt')
        ->addSelect('hour(l.time) AS date_hour')
        ->from(Logs::class, 'l')
        ->where('l.header = :header')
        ->groupBy('l.value')
        ->addGroupBy('date_hour')
        ->setParameter('header', 'someheader')

此代码选择 3 列有一个条件和两个 groupBy。

我想获取此查询的记录数。当然我不想下载所有记录并检查下载数据的大小。

问题: 如何重建此查询并从数据库中获取结果作为 singleScalarValue()?

最佳答案

我认为你应该在这里使用(id column for count):

    ->addSelect('count(l) AS cnt')

类似这样,但如果您展示您的实体,我可以建议正确的解决方案:

         $this->qb->select('l')
        ->addSelect('count(l.id) AS cnt')
        ->addSelect('hour(l.time) AS date_hour')
        ->from(Logs::class, 'l')
        ->where('l.header = :header')
        ->groupBy('l.value')
        ->addGroupBy('date_hour')
        ->setParameter('header', 'someheader')

$count = $qb->getQuery()->getSingleScalarResult();

关于php - doctrine 中的子查询计数 - querybuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53336843/

相关文章:

PHPUnit 测试和 Doctrine,连接太多

php - Symfony 2 嵌入式表单集合多对多

php - Symfony 错误 The class XXX was not found in the chain configured namespaces XXX

php - 选择表中与相关表及其字段用户名和密码相匹配的行

php - 无法使用php更新mysql中的日期类型

php - Symfony 2 FOS UserBundle 用户没有获得组的角色

php - 原则插入看不到外键字段

php - 在 CodeIgniter 中获取 select 语句的空结果

php - 在使用准备好的语句执行插入查询后获取自动增量 ID

php - 运行 composer install 后 bin/console 丢失