0

我在codeigniter中有这样的代码

foreach ($where as $k=>$v){
    foreach ($v as $val){
        $this->db->or_where($k, $val);  
    }                   
}

但是,我想要'或组'喜欢

select * from table where id = '1' and (category = 'tekno' OR category ='biologi');

有任何想法吗?

4

2 回答 2

3

如果需要更复杂的 where 子句分组,我经常求助于手动构建查询。

$or_where = "";
foreach ($where as $k => $v) {
    foreach ($v as $val) {
        $or_where .= "OR category = '$val' ";
    }                   
}

然后,您可以添加到现有的 Active Record 查询:

$this->db->where($or_where);

或者

$this->db->or_where($or_where);
于 2013-03-08T07:39:30.887 回答
1

您可以在这样的地方添加更多:

$this->db->where('id', 1);
$this->db->where('(category', 'tekno');
$this->db->or_where('category', 'biologi');
$this->db->where('1=1)');
于 2016-08-03T15:52:10.727 回答