0
我试图从数据库中使用codeigniter和点燃数据表从MySQL数据表。我没有麻烦拉单连接查询与单个where子句,但是当我尝试添加一个WHERE x OR y时,我似乎无法得到它的工作。下面是正常工作的基本代码:使用加入查询与点燃的数据表试图获得有两个条件的地方
$table = 'test_base';
$table2 = 'lab';
$this->datatables->select('test_base.idlab');
$this->datatables->from($table);
$this->datatables->join($table2, 'test_base.idlab = lab.idlab');
$this->datatables->where('lab.idaccount',$idaccount);
如果我希望把多个条件查询,我从manual,我可以把多个条件中的数组看到,但这似乎只是做一个AND ,而不是一个OR语句。
然后我看到,我或许可以使用下列创建自己的SQL查询:
$this->datatables->where('column != "string"');
所以,我尝试这样做:
$this->datatables->where("`lab`.`idaccount`= $idaccount OR `lab`.`idlab` = 0");
SELECT `test_base`.`idlab`
FROM (`test_base`)
JOIN `lab` ON `test_base`.`idlab` = `lab`.`idlab`
WHERE `lab`.`idaccount`=` 124 OR `lab`.`idlab` = 0
ORDER BY `idtest` asc
的问题是,有一个额外的(`)在WHERE`lab`.`idaccount` =`< - 在这里,我不知道如何摆脱它。
你为什么不直接尝试使用$ this-> db-> query($ your_query_string)查询sql查询; – Ehecatl 2014-09-03 02:24:51
我终于找到了可以解决它的另一个地方,但目前有一个工作示例。我发布这个以防它可能帮助其他人。 $ this-> db-> where('string_query',NULL,FALSE); FALSE可以防止CI将反作用线用于保护表格。在自定义字符串下找到:https://ellislab.com/codeigniter/user-guide/database/active_record.html – nwolybug 2014-09-04 04:56:14