我在使用两个类似语句时遇到问题,并且在一起:
$this->db->select('something');
$this->db->where('WHERE',$var);
$this->db->where_in('WHEREIN', $var);
$this->db->like('LIKE1',$query);
$this->db->or_like('LIKE2',$query);
$query = $this->db->get('table');
我的查询必须选择LIKE1
或LIKE2
WHERE
和WHEREIN
为真。
如果我使用or_like
,where
语句也会获得or
,
如果我只使用like
,则会成为like AND like
声明
任何解决方案?
答案 0 :(得分:5)
我找到了这个解决方案:
使用group_start()
和group_end()
,因此我的代码转向
$this->db->select('something');
$this->db->where('WHERE',$var);
$this->db->where_in('WHEREIN', $var);
$this->db->group_start();
$this->db->like('LIKE1',$query);
$this->db->or_like('LIKE2',$query);
$this->db->group_end();
$query = $this->db->get('table');
答案 1 :(得分:0)
如果你有一个复杂的where子句,你可以这样写:
$this->db->where("doc = '123456' AND place IN('1,2,3') AND name (LIKE '%query%' ESCAPE '!' OR code LIKE '%query%' ESCAPE '!' )", NULL);
答案 2 :(得分:0)
当您运行此类查询时,如果您创建这样的模型会更好:
function example(){
$query = "( SQL QUERY )";
$search = $this->db->query($query);
return $search->result_array();
}