我希望有人能帮助我,我在我的库编写自定义查询,我想要做以下: -我该怎么写不等于在一个教条的where子句中?
$query = $this->_em->createQueryBuilder()
->select('a')
->from('entity', 'a')
->where('a.deleted not 1') /// how do you write NOT??? i've tried <> etc
->getQuery();
如何执行上面?
由于
安德鲁
我希望有人能帮助我,我在我的库编写自定义查询,我想要做以下: -我该怎么写不等于在一个教条的where子句中?
$query = $this->_em->createQueryBuilder()
->select('a')
->from('entity', 'a')
->where('a.deleted not 1') /// how do you write NOT??? i've tried <> etc
->getQuery();
如何执行上面?
由于
安德鲁
弗朗西斯的回答是正确的。这完全取决于您是否愿意使用表达式构建器或高级解决方案。
对于您的特殊情况,您可以选择其中一种。
表达式生成器:
$queryBuilder = $this->_em->createQueryBuilder();
$expr = $queryBuilder->expr();
$query = $queryBuilder
->select('a')
->from('entity', 'a')
->where($expr->neq('a.deleted', 1))
->getQuery();
对于高层次的解决方案看Rawkode的答案。除了将!=
更改为<>
或使用a.deleted = 0
。
更重要的是
->where('a.deleted = :deleted')
->setParameter('deleted', false);
$query = $this->_em->createQueryBuilder()
->select('a')
->from('entity', 'a')
->where('a.deleted != 1') /// how do you write NOT??? i've tried <> etc
->getQuery();
'!=' 表示不相等
!=表示不等于 !===装置不相同的
我已更改我的代码以使用!=并且它现在不会返回任何结果,删除的字段是一个INT,字段值被设置为null,直到记录被删除,那么字段设置为1,因此我想返回不等于1的每个记录。 –
$queryBuilder = $repository->createQueryBuilder('a');
$query = $queryBuilder
->where($queryBuilder->expr()->notIn('u.id', 1)
->getQuery();
我不确定在查询构建中不相等的运算符。但是,这可能会帮助你。顺便说一句,我也在寻找更好的答案。
只需使用NEQ()像在下面的例子:
$query = $repository->createQueryBuilder('t');
$expr = $query->expr();
$orx = $expr->orX();
$orx->add($expr->neq('t.pageTitle', $expr->literal('value1')));
$orx->add($expr->neq('t.metaDescription', $expr->literal('value2')));
$query->andWhere($orx);
以上代码生成:
AND (
t1_.page_title <> 'value1'
OR t1_.meta_description <> 'value2'
)
我已经改变了我的代码使用将与学说被参数化这个!=,它不返回任何结果都现在,被删除的字段是一个INT,字段值被设置直到记录被删除,然后该字段设置为1,因此我想返回不等于1的每个记录。 –