Codeigniter - 使用两个喜欢和在一起的地方

时间:2015-09-02 19:51:15

标签: php sql codeigniter

我在使用两个类似语句时遇到问题,并且在一起:

    $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');

我的查询必须选择LIKE1LIKE2 WHEREWHEREIN为真。

如果我使用or_likewhere语句也会获得or

如果我只使用like,则会成为like AND like声明

任何解决方案?

3 个答案:

答案 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(); 
}