2016-06-27 82 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