如何用教义查询非空?

我有表测试:

Test:
id | name 
1  | aaa
2  | 
3  | ccc
4  | aaa
5  | 
6  | ddd

我想要名称不为空的结果:

aaa
ccc
aaa
ddd

我怎样才能得到:

Doctrine_Core::getTable('Test')->findBy('name', NOTNULL??) <-doesnt working

并在具有以下特征的模型中:

$this->createQuery('u')
     ->where('name = ?', NOTNULL ???) <- doesnt working
     ->execute();

答案 1

试试这个:

$this->createQuery('u')
     ->where('name IS NOT NULL')
     ->execute();

这是标准的 SQL 语法。Doctrine 不会将 Null 值转换为正确的 sql。


答案 2

以 Doctrine 方式(从查询生成器和 Expr 类)执行此操作。

 $qb = $entityManager->createQueryBuilder();
 $result = $qb->select('t')
        ->from('Test','t')
        ->where($qb->expr()->isNotNull('t.name'))
        ->groupBy('t.name')
        ->getQuery()
        ->getResult();

还有diffent()函数。


推荐