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 に答える