我正在使用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发布于 2016-07-25 16:26:59
CodeIgniter 3
仅限:
$this->db->where('archived IS NOT NULL');生成的查询为:
WHERE archived IS NOT NULL;存档$
->db->其中(‘archived IS NOT NULL',null,false);不需要<<
反转:
$this->db->where('archived');生成的查询为:
WHERE archived IS NULL;https://stackoverflow.com/questions/2489453
复制相似问题