我希望有人能幫助我,我在我的庫編寫自定義查詢,我想要做以下: -我該怎麼寫不等於在一個教條的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的每個記錄。 –