如何用 Doctrine 查询 NOT NULL?

发布于 2024-12-03 11:24:06 字数 443 浏览 0 评论 0原文

我有表测试:

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

仙气飘飘 2024-12-10 11:24:06

试试这个:

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

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

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.

心病无药医 2024-12-10 11:24:06

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

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

还有distinct()函数。

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.

千柳 2024-12-10 11:24:06

或者只使用 Doctrine 过滤器:

$filters[] = new Filter('name', null, 'notEqual');

然后

$list = $this->get(yourDBinstance)
        ->setDocIdentifier('TestBundle:Test')
        ->setFilters($filters)
        ->list();

Or just use Doctrine filter:

$filters[] = new Filter('name', null, 'notEqual');

Then

$list = $this->get(yourDBinstance)
        ->setDocIdentifier('TestBundle:Test')
        ->setFilters($filters)
        ->list();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文