How to query NOT NULL with Doctrine?

半腔热情 提交于 2019-12-30 07:55:47

问题


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();

回答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.




回答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.



来源:https://stackoverflow.com/questions/7305468/how-to-query-not-null-with-doctrine

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!