我希望有人可以帮助我,我正在我的存储库中编写一个自定义查询,我想执行以下操作:-
$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
。更好的是用 Doctrine 参数化这个
->where('a.deleted = :deleted')
->setParameter('deleted', false);
关于zend-framework - 我如何在教义 where 子句中写不等于?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10537793/