您可以使用:
$this->db->from('person')->where('age is not null');
如果你好奇,這是如何發生看system/database/DB_active_rec.php
protected function _where($key, $value = NULL, $type = 'AND ', $escape = NULL)
{
...
if (is_null($v) && ! $this->_has_operator($k))
{
// value appears not to have been set, assign the test to IS NULL
$k .= ' IS NULL';
}
...
}
而且system/database/DB_driver.php
/**
* Tests whether the string has an SQL operator
*
* @access private
* @param string
* @return bool
*/
function _has_operator($str)
{
$str = trim($str);
if (! preg_match("/(\s|<|>|!|=|is null|is not null)/i", $str))
{
return FALSE;
}
return TRUE;
}
因此,您可以將第一個參數傳遞給where()
方法,如果此方法的第一個運算符有一個子字符串is not null
,它將保持不變。
要閱讀更多 - CodeIgniter forum
希望這將有助於http://codeigniter.com/forums/viewthread/119444/P15 – sbaaaang
你設置允許空DEFAULT NULL mysql的選項,你的數據庫字段? – sbaaaang
有用的論壇主題。 –