1
我寫下面的代碼來使用查詢生成器來構建查詢。CASE WHEN不工作doctrine2查詢生成器
$em = $this->_em;
$qb = $em->createQueryBuilder();
$qb->select('tbl');
$qb->addSelect('COUNT(tbl.macId) AS totalInstallations');
$qb->addSelect('COUNT(DISTINCT tbl.macId) AS uniqueInstallations');
$qb->addSelect('COUNT(CASE
WHEN tbl.updatedOn IS NOT NULL THEN tbl.macId ELSE NULL
END) AS totalUninstallations');
$qb->from('Entity\SoftwareInstallation', 'tbl');
$result = $qb->getQuery()->getArrayResult();
return $result;
但它沒有在案件條件下工作。
我得到下面的錯誤:
Type: Doctrine\ORM\Query\QueryException
Message: [Syntax Error] line 0, col 152: Error: Expected Doctrine\ORM\Query\Lexer::T_FROM, got '.'
Filename: /var/www/html/ghostnew/application/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php
Line Number: 52
任何人都可以幫我解決這個問題。
謝謝。
雖然用SUM替換COUNT你的情況,在那裏工作似乎與DQL使用CASE部分的一個普遍問題。我在這裏打開了一個問題:https://github.com/doctrine/doctrine2/issues/5915隨意訂閱。 – webDEVILopers