How to query NOT NULL with Doctrine?
65,541
Solution 1
Try this:
$this->createQuery('u')
->where('name IS NOT NULL')
->execute();
which is standard SQL syntax. Doctrine doesn't convert Null values into proper sql.
Solution 2
Do it in Doctrine way, from query builder and Expr class.
$qb = $entityManager->createQueryBuilder();
$result = $qb->select('t')
->from('Test','t')
->where($qb->expr()->isNotNull('t.name'))
->groupBy('t.name')
->getQuery()
->getResult();
there are also distinct() function.
Solution 3
Or just use Doctrine filter:
$filters[] = new Filter('name', null, 'notEqual');
Then
$list = $this->get(yourDBinstance)
->setDocIdentifier('TestBundle:Test')
->setFilters($filters)
->list();
Author by
Michael Fidy
Updated on November 19, 2021Comments
-
Michael Fidy over 2 years
I have table Test:
Test: id | name 1 | aaa 2 | 3 | ccc 4 | aaa 5 | 6 | ddd
I want result where name is NOT NULL:
aaa ccc aaa ddd
How can i get with:
Doctrine_Core::getTable('Test')->findBy('name', NOTNULL??) <-doesnt working
and in model with:
$this->createQuery('u') ->where('name = ?', NOTNULL ???) <- doesnt working ->execute();