【问题标题】:How to select rows with int flag in doctrine如何在学说中选择带有 int 标志的行
【发布时间】:2016-12-19 21:41:06
【问题描述】:

我想使用Doctrine 查询构建器从表中选择所有在int 列中设置了特殊标志的条目:

'query_builder' => $this->em->createQueryBuilder()
    ->select('e')
    ->from('AppBundle\Entity\MyEntity', 'e')
    ->where('e.flags & 1 = 1');

直接在MySQL 中使用时,SELECT ... WHERE flags & 1 = 1 语法可以正常工作。但是在尝试执行上述查询时,出现以下错误:

错误:预期 =、、>、>=、!=、得到 '&'

那么,如何使用 Doctrine 处理/选择标志?

【问题讨论】:

标签: mysql symfony doctrine-orm doctrine


【解决方案1】:

Doctrine 的语法有点不同。您尝试执行的操作也称为 BITWISE AND 操作。

试试这个:

'query_builder' => $this->em->createQueryBuilder()
->select('e')
->from('AppBundle\Entity\MyEntity', 'e')
->where('BIT_AND(e.flags,1) = 1');

在 sql server 上测试。

文档:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#id3

【讨论】:

    猜你喜欢
    • 2018-01-24
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 2016-01-26
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多