我希望有人可以帮助我,我正在我的存储库中编写一个自定义查询,我想执行以下操作:-

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

10-12 12:41