我想使用Doctrine
查询构建器从表中选择所有条目,这些条目已在int
列中设置了一个特殊标志:
'query_builder' => $this->em->createQueryBuilder()
->select('e')
->from('AppBundleEntityMyEntity', 'e')
->where('e.flags & 1 = 1');
直接在MySQL
中使用时,SELECT ... WHERE flags & 1 = 1
语法正常工作。但是,当尝试执行上述查询时,我会收到以下错误:
错误:Expection =,<,< =,<>,>,> =,!=,get'&'
那么,如何使用学说处理/选择标志?
学说的语法有些不同。另外,您要尝试执行的操作被称为BITWISE和操作。
而是尝试一下:
'query_builder' => $this->em->createQueryBuilder()
->select('e')
->from('AppBundleEntityMyEntity', 'e')
->where('BIT_AND(e.flags,1) = 1');
在SQL Server上测试。
docs:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#id3