如何在Doctrine查询中指定空值作为过滤条件?

85

我正在Zend中使用Doctrine 1.1。我试图编写一个查询,以返回在某个列中具有空值的记录。

    $q = Doctrine_Query::create()
    ->select('a.*')
    ->from('RuleSet a')
    ->where('a.vertical_id = ?', null);

    $ruleset_names_result = $q->execute(array(), Doctrine::HYDRATE_ARRAY);

我在规则集表中有三条记录,其中垂直ID列的值为NULL,但查询却找不到这些记录。

感谢您的帮助。

Sid。

2个回答

182

我在Symfony中使用Doctrine,我的做法如下:

where('a.vertical_id is NULL');


7
真是不可思议... 你必须在“NULL”上加上大写,我找了一个小时才找到错误... 谢谢。本来应该先在Stack Overflow上搜索的。 - Matt Welander
8
顺便提一下,相反的写法是 where('a.vertical_id is not NULL'); - Gigala

21

你的回答参考了Doctrine的第二个版本,但问题涉及到的是第一个版本。 - wolxXx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接