mysql - Symfony 2/Doctrine 2,带 BIT_AND 运算符的 ORDER BY

标签 mysql symfony doctrine-orm

我需要在数据库中检索一些 tsk,并通过字段上的二进制运算对它们进行排序。 这就是我想要的:

    $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)

所以我的问题是: - 如何使用二元运算符对数据进行排序? - 如果我正在进行多项选择,如何才能使我的对象保持正确的水合状态?

非常感谢!

最佳答案

我找到了解决方案。

$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+

关于mysql - Symfony 2/Doctrine 2,带 BIT_AND 运算符的 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18419490/

相关文章:

php - Mysql最流行的语法错误

php - 提高 PHP MYSQL 查询性能或服务器问题?

php - Symfony 将参数传递给验证器约束

doctrine-orm - 按字符串长度排序

php - 在学说查询的结果中包含相关实体值

mysql - 从单个查询中获取不同的列

mysql - 存储点击和查看统计信息的最佳方式?

php - 为什么我不能在 MongoDB 文档中存储关联数组?

php - Symfony 在 CLI 命令中捕获 PHP 错误

php - 部署到 Heroku 时安装依赖项时出错