Sql 如何使用Zend_Db选择列值为空/空的行?

Sql 如何使用Zend_Db选择列值为空/空的行?,sql,mysql,sqlite,zend-db,zend-db-select,Sql,Mysql,Sqlite,Zend Db,Zend Db Select,我有一个SQLite数据库,最终将是一个MySQL数据库,我正在使用Zend框架。我试图获取表中'date\u accepted'列为空/null/没有值的所有行。这就是我到目前为止所做的: public function fetchAllPending() { $select = $this->getDbTable()->select(); $select->where('date_accepted = ?', 'null'); return $thi

我有一个SQLite数据库,最终将是一个MySQL数据库,我正在使用Zend框架。我试图获取表中
'date\u accepted'
列为空/null/没有值的所有行。这就是我到目前为止所做的:

public function fetchAllPending()
{
    $select = $this->getDbTable()->select();
    $select->where('date_accepted = ?', 'null');
    return $this->fetchAll($select);
}

我做错了什么?您将如何在纯SQL中编写这篇文章,和/或使用
Zend\u Db\u Select

我看到了两个可能的问题。什么是getDbTable函数?如果您的类继承自Zend_Db_表,则不需要该函数。第二,您可能应该在查询中引用NULL,尝试IS NULL而不是=NULL

public function fetchAllPending()
{
        $select = $this->select()->where('date_accepted IS NULL');
        return $this->fetchAll($select);
}

我看到两个可能的问题。什么是getDbTable函数?如果您的类继承自Zend_Db_表,则不需要该函数。第二,您可能应该在查询中引用NULL,尝试IS NULL而不是=NULL

public function fetchAllPending()
{
        $select = $this->select()->where('date_accepted IS NULL');
        return $this->fetchAll($select);
}

此函数位于我的数据映射器对象中。(不确定这是不是最好的地方,但很管用)。但是空值对我有用,所以谢谢!在使用Zend 2.4.7的TableGateway时,我发现以下内容很有用。(不确定这是不是最好的地方,但很管用)。但是空值对我有用,所以谢谢!在使用Zend 2.4.7的TableGateway时,我发现以下内容很有用。