我遇到如下异常(exception):
[Syntax Error] line 0, col 53: Error: Expected known function, got 'MONTH'
当尝试在 symfony2 中使用doctrine2 执行以下查询时:
SELECT e FROM EntityBundle:Employee e WHERE MONTH(e.dateOfJoining) = 03 order by e.name
当我尝试执行类似的查询时,如下所示:
SELECT * FROM employee e WHERE MONTH(e.date_of_joining) = 03;
它在 phpmyadmin 中运行良好。那么任何人都可以建议我如何使用 symfony2 实现相同的查询doctrine2 吗?
最佳答案
尝试阅读这篇关于 registering functions with doctrine 的文章但无论如何你都不应该使用它。根据列上的表达式进行过滤效率非常低。
您可以通过执行类似的操作来实现相同的目标,而无需任何开销 -
SELECT e.*
FROM employee e
WHERE e.dateOfJoining BETWEEN '2012-03-01' AND '2012-03-31'
ORDER BY e.name
此查询将能够使用 dateOfJoining 列上的任何适用索引。
关于mysql - Doctrine2 在 Symfony2 中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9888541/