2017-08-16 85 views
2

以下條款是笨單列where_in條款$this->db->where_in('x1',$val);多列where_in在笨

我怎麼能傳遞多個列笨where_in條款像下面的MySQL查詢select * from tab1 where (col1,col2) in ((1,2),(2,3)) 任何幫助表示讚賞

回答

0

假設你的數據數組類似於這(應該是)

$val1 = array(1,2); 
$val2 = array(2,3); 

和查詢應該是

$this->db->select('*'); 
$this->db->from('tab1'); 
$this->db->where_in('col1',$val1); 
$this->db->or_where_in('col2',$val2); 
$query = $this->db->get(); 
$result = $query->result_array(); 

否則,您可以使用

$this->db->query("select * from tab1 where (col1,col2) in ($val1,$val2)"); 
+0

這一個已經我試圖取代$array_2,但不給我預期的結果 – Thiyagu

+0

沒有辦法。給我看你的完整代碼 –

+0

例如我只更新col1 = 1或2,col2 = 2或3,但這個更新也col1 = 1和col2 = 3 – Thiyagu

0

「$ arr_1 = some_array;」

「$ arr_2 = some array;」

如果他們是在同一陣列只是$arr_1

$result = $this->db->select('*')->where_in('col1',$arr_1)->where_in('col2',$arr_2)->get('tab1')->result_array(); 

OR

$result = $this->db->select('*')->where_in('col1',$arr_1)->or_where_in('col2',$arr_2)->get('tab1')->result_array();