2016-06-27 60 views
0

我在codeigniter中使用'where'时遇到了一些问题,我想修改不使用和但使用or的子句。codeigniter where in clause显示结果是或

这是代码:

$this->db->where_in('id','1,2,3'); 

它的工作原理是这样的:

$this->db->where('id',1); 
$this->db->where('id',2); 
$this->db->where('id',3); 

,但我想要的结果是这样的:

$this->db->where('id',1); 
$this->db->or_where('id',2); 
$this->db->or_where('id',3); 

,但它仍然使用其中不哪里。谢谢

+0

添加您正在使用的所有代码。 –

+0

请发布你想得到的结果。并且你得到了什么结果。也张贴您有的样品表。 –

回答

3

您的where_in()用法是错误的。您必须在array这样的声明,你想比较值:

$ids = array('1', '2', '3'); 
$this->db->where_in('id', $ids); 
//Produces: WHERE id IN ('1', '2', '3') 

或像这样:

$this->db->where_in('id', array('1', '2', '3')); 
//Produces: WHERE id IN ('1', '2', '3') 
+0

它仍然不起作用 –

+0

你可以告诉我你的代码 –

+0

@DimasAdiAndrea你有什么疑问? –

1

怎么样使用这个:

$id = array('1', '2', '3'); 
$this->db->or_where_in('id', $ids); 

UPDATE:

$this->db->select()->from('tbl') 
    ->group_start() 
    ->where('id', 1) 
    ->or_group_start() 
     ->where('id', 2) 
     ->where('id', 3) 
    ->group_end() 
    ->group_end(); 
+0

它的工作,但只有一个条件和条件不符合该数据,结果仍显示 –

+0

尝试更新的一个... – MSI

0

请检查where_in

​​

生成与加入了WHERE field IN (item, item) SQL查询语法并在适当

$ids = array(1, 2, 3); 
$this->db->where_in('id', $ids); 


$this->db->or_where_in() 

生成一个WHERE field IN (‘item’, ‘item’) SQL查询使用OR如果合适

$ids = array('1', '2', '3'); 
$this->db->or_where_in('id', $ids); 


$this->db->where_not_in() 

生成加盟一个WHERE field NOT IN (‘item’, ‘item’)用AND连接的SQL查询(如果适用)

$ids = array('1', '2', '3'); 
$this->db->where_not_in('id', $ids); 


$this->db->or_where_not_in() 

生成一个WHERE field NOT IN (‘item’, ‘item’) SQL查询使用OR如果合适

$ids = array('1', '2', '3'); 
$this->db->or_where_not_in('id', $ids); 

加盟欲了解更多信息请参考官方文档https://www.codeigniter.com/userguide3/database/query_builder.html