Ajo*_*uve 16 php mysql sql symfony doctrine-orm
我想按生日那样列出我的用户,所以月和日但不是年份.
我有这个问题
SELECT *
FROM user
WHERE birthDate IS NOT NULL
GROUP BY MONTH(birthDate), DAY(birthDate)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将它与Symfony和Doctrine一起使用.我试过了
$result = $em->getRepository("AcmeApplicationBundle:SecurityServiceUser")
->createQueryBuilder('user')
->where('user.birthDate IS NOT NULL')
->groupBy('MONTH(user.birthDate), DAY(user.birthDate)')
->getQuery()
->getResult();
Run Code Online (Sandbox Code Playgroud)
和
$result = $em->getRepository("AcmeApplicationBundle:SecurityServiceUser")
->createQueryBuilder('user')
->where('user.birthDate IS NOT NULL')
->groupBy('MONTH(user.birthDate)')
->groupBy('DAY(user.birthDate)')
->getQuery()
->getResult();
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下我都有错误
[语义错误]第0行,第165行附近'MONTH(birthDate),':错误:无法按未定义的标识或结果变量进行分组.
Cha*_*nel 26
您尚未为值设置别名.这是一个更新版本:
$result = $em->getRepository("AcmeApplicationBundle:SecurityServiceUser")
->createQueryBuilder('user')
->select(' user.username, MONTH(user.birthDate) AS gBmonth, DAY(user.birthDate) AS gBday')
->where('user.birthDate IS NOT NULL')
->groupBy('gBmonth')
->addGroupBy('gBday')
->getQuery()
->getResult();
Run Code Online (Sandbox Code Playgroud)
这应该工作正常.