6

我试图从所选持续时间除以条目持续时间等于没有余数的表中进行选择。

$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 的查询构建器来做到这一点吗?

4

1 回答 1

11

该符号%不是 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.
于 2012-06-14T20:29:37.837 回答