0

我需要在数据库中检索一些 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)

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

非常感谢 !

4

1 回答 1

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+

于 2013-08-26T08:47:04.250 回答