如何在doctrine2中添加运算符查询构建器where语句 [英] How to add operators in doctrine2 query builder where statement

查看:76
本文介绍了如何在doctrine2中添加运算符查询构建器where语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图从所选持续时间除以入口持续时间等于的表中选择没有余数。

Im trying to select from a table where the selected duration divided by the entry duration equals has no remainder.

$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的查询构建器?

This would work in plain SQL. Does anybody know how to do this with Doctrine's query builder?

推荐答案

%不是DQL运算符。尝试这样:

% is not DQL operator. Try this:

$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段。

Or read this: http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/dql-doctrine-query-language.html The 12.5.1 paragraph.

MOD(a, b) - Return a MOD b.

这篇关于如何在doctrine2中添加运算符查询构建器where语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆