我试图从一个表中选择,其中所选的持续时间除以输入持续时间等于没有余数。
$qb = $em->createQueryBuilder()
->from('AcmeBlogBundle:Entry', 'e')
->andWhere(":duration % e.duration = 0")
->setParameter('duration', $duration);
这将返回错误:
[Syntax Error] line 0, col 226: Error: Expected =, <, <=, <>, >, >=, !=, got '%'
这可以在纯SQL中使用。有人知道如何使用Doctrine的查询构建器吗?
答案 0 :(得分:10)
符号%
不是DQL运算符。试试这个:
$qb = $em->createQueryBuilder()
->from('AcmeBlogBundle:Entry', 'e')
->andWhere("mod(:duration,e.duration) = 0")
->setParameter('duration', $duration);
或者阅读:http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/dql-doctrine-query-language.html 12.5.1段。
MOD(a, b) - Return a MOD b.