我正在使用CodeIgniter的活动记录类来查询MySQL数据库。我需要在字段未设置为NULL的表中选择行:
$this->db->where('archived !=', 'NULL');
$q = $this->db->get('projects');
这将只返回以下查询:
SELECT * FROM projects WHERE archived != 'NULL';
archived
字段是DATE
字段。
有没有更好的方法来解决这个问题?我知道我可以自己编写查询,但我希望在代码中始终使用活动记录。
发布于 2010-03-22 09:01:27
where('archived IS NOT NULL', null, false)
发布于 2012-12-22 03:15:04
活动记录肯定有一些怪癖。当您将一个数组传递给$this->db->where()
函数时,它将生成一个IS NULL。例如:
$this->db->where(array('archived' => NULL));
产生
WHERE `archived` IS NULL
奇怪的是,负IS NOT NULL
没有等价物。然而,有一种方法可以产生正确的结果,并且仍然可以转义语句:
$this->db->where('archived IS NOT NULL');
产生
WHERE `archived` IS NOT NULL
发布于 2012-02-24 02:10:00
Null不能设置为字符串...
$this->db->where('archived IS NOT', null);
当null没有包含在引号中时,它可以正常工作。
https://stackoverflow.com/questions/2489453
复制相似问题