Symfony 2 / Doctrine 2,ORDER BY和BIT_AND运算符

时间:2013-08-24 14:16:03

标签: mysql symfony doctrine-orm

我需要在数据库中检索一些tsks,并在字段上使用二进制操作对它们进行排序。 这就是我想要的:

    $query = $this->getEntityManager()->createQueryBuilder()
                    ->select('t')
                    ->from('MyBundle:Task', 't');
    $query->orderBy('BIT_AND(t.options, 1)', 'DESC');

我不希望每个“选项”都有一个字段,所以我的所有选项都是字段中的“位”。

之前的代码无效。 我试过这样做:

    $query = $this->getEntityManager()->createQueryBuilder()
                    ->select('t', 'BIT_AND(t.options, 1) as myoption')
                    ->from('MyBundle:Task', 't');
    $query->orderBy('myoption', 'DESC');

但是在这种情况下,我正在丢失关系中的对象......因为我的任务与用户有关,我想做$ task-> getUser()(或者更确切地说是在twig中:task.user )

所以我的问题是: - 如何在二元运算符上对数据进行排序? - 如果我正在进行多项选择,如何才能正确保持物体水分?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

$query = $this->getEntityManager()->createQueryBuilder()
                ->select('t')
                ->addSelect('BIT_AND(t.options, 1) AS HIDDEN option')
                ->from('MyBundle:Task', 't');
$query->orderBy('option', 'DESC');

它正在制定学说2.2 +