Php 在条令中处理位掩码类型

Php 在条令中处理位掩码类型,php,symfony,doctrine-orm,doctrine-query,Php,Symfony,Doctrine Orm,Doctrine Query,我有一个存储各种标志的位掩码类型 我在使用条令执行以下查询时遇到问题 SELECT id, name, flags FROM stores WHERE flags & 4 = 4; 我尝试了下面的代码,但我得到的错误是[Syntax error]第0行,第175列:error:Expected=,=,!=,得到“&” 方法1: $builder = $this->getEntityManager()->createQueryBuilder(); $builder->s

我有一个存储各种标志的位掩码类型

我在使用条令执行以下查询时遇到问题

SELECT id, name, flags FROM stores WHERE flags & 4 = 4;
我尝试了下面的代码,但我得到的错误是
[Syntax error]第0行,第175列:error:Expected=,=,!=,得到“&”

方法1:

$builder = $this->getEntityManager()->createQueryBuilder();
$builder->select('ads')
        ->from($this->getClassName(), 'ads')
        ->where("ads.flags & 4=4");
return new ArrayCollection($builder->getQuery()->getResult());
$repo->findBy(['flags' => '& 4=4']);
------------------或-------------------

方法2:

$builder = $this->getEntityManager()->createQueryBuilder();
$builder->select('ads')
        ->from($this->getClassName(), 'ads')
        ->where("ads.flags & 4=4");
return new ArrayCollection($builder->getQuery()->getResult());
$repo->findBy(['flags' => '& 4=4']);
如何使用第一种和第二种方法成功实现上述原始SQL查询?

使用“&4=4”的原因是什么?使用“&4=4”的原因是什么?