如何用ci中具有相同列和不同条件的单个关联数组替换多个where子句

时间:2014-09-18 09:42:03

标签: mysql codeigniter activerecord

$this->db->where('column','value1');
$this->db->where('column','value12');
$this->db->where('column','value3');

我想要像

这样的东西
$where_array = array('column'=>value1,'column'=>value2,'column'=>value3);
$this->db->where($where_array);

这是可能的,因为我们在关联数组中不能有相同的索引名称

更新

每种情况彼此不同如下:

$this->db->where('column<','value1');
    $this->db->where('column>','value12');
    $this->db->where('column<=','value3');

3 个答案:

答案 0 :(得分:0)

希望你正在做in条件。然后尝试下面的代码。

$values= array(value1,value2,value3);
$this->db->where_in('column', $values);

用于操作之间

https://ellislab.com/forums/viewthread/102635/

答案 1 :(得分:0)

你可以像

一样使用它
$this->db->where(array('column'=>value1,'column'=>value2,'column'=>value3));

答案 2 :(得分:0)

由于您的条件彼此不同,您无法使用where_in()或单where()子句,您可以链接多个where子句以缩短代码,如下所示

$this->db->where('column<','value1')->where('column>','value12')->where('column<=','value3');

但是,您不需要第一个条件->where('column<','value1'),因为第三个条件->where('column<=','value3')就足够了,所以最终的代码看起来像

$this->db->where('column>','value12')->where('column<=','value3');