2012-07-17 47 views
1

ENG:笨ORM active_record例如發電機SQL WHERE ID = '1' AND(C1 LIKE '%3%' OR C2 LIKE '%3%')

大家好, 問題,使用CodeIgniter ORM active_record,因爲我可以生成的SQL例如..?

例生成SQL:... AND(LIKE ...或類似的...)

SELECT id, c1, c2 FORM t1 WHERE id ='1' AND (c1 LIKE '%3%' OR c2 LIKE '%3%') 

Enccontre不是在combiar ORM函數的形式產生什麼像什麼,我展示的SQL實例。

這是什麼,但最多的是不是我想要的。

$this->db->select('id, c1, c2') 
       ->from('t1') 
       ->where('id', '1111') 
       ->like('c1',$sSearch) 
       ->or_like('c2',$sSearch) 
       ->get(); 

如果有人能給我一個指令,會非常感謝。 問候

ESP:

HOLA一個待辦事項, Pregunta,CON笨EL ORMØactive_record科莫puedo generar EL SQL德爾ejemplo ..?

Ejemplo SQL:... AND(LIKE ...或類似的...)

SELECT id, c1, c2 FORM t1 WHERE id ='1' AND (c1 LIKE '%3%' OR c2 LIKE '%3%') 

沒有enccontre EN EL ORM拉備考德combiar拉斯funciones對generar算法中科莫老闕muestro EN el SQL de ejemplo。

Lo mas perecido al SQL es esto pero no es lo que busco。

$this->db->select('id, c1, c2') 
       ->from('t1') 
       ->where('id', '1111') 
       ->like('c1',$sSearch) 
       ->or_like('c2',$sSearch) 
       ->get(); 

Si alguien me puede dar una mando estaria muy agradecido。 Saludos

回答

0

因爲你的英語是很難理解我是在這一個刺...

我假設你正在試圖想與通配符%前使用,或關鍵字後..

可以使用前,後兩者(默認)內等,或or_like做..

<?php 
$this->db 
    ->select('id, c1, c2') 
    ->from('t1') 
    ->where('id', '1111') 
     //$this->db->like('title', 'match', 'before'); 
     //Produces: WHERE title LIKE '%match' 
     //$this->db->like('title', 'match', 'after'); 
     //Produces: WHERE title LIKE 'match%' 
     //$this->db->like('title', 'match', 'both'); 
     //Produces: WHERE title LIKE '%match%' 
    ->like('c1', $sSearch) 
    ->or_like('c2', $sSearch) 
    ->get(); 

或者你也可以EXECUT e爲原始的SQL - http://codeigniter.com/user_guide/database/queries.html

<?php $this->db->query("YOUR SEQUEL STATEMENT HERE"); 
1

當混合ANDOR,括號是你的朋友。 CodeIgniter的活動記錄不支持根據需要混合ANDOR

笨將輸出以下查詢:

SELECT id, c1, c2 FORM t1 WHERE id ='1' AND c1 LIKE '%3%' OR c2 LIKE '%3%' 

顯然,這是不是你想要的。你可以做的是:將一個自定義字符串傳遞給WHERE以將其用作該子句。

// Since we are using a custom string, we need to escape manually 
$sSearch = $this->db->escape_like_str($sSearch); 
$this->db->select('id, c1, c2') 
      ->from('t1') 
      ->where('id', '1') 
      // this will add the clause like you want 
      ->where("(`c1` LIKE '%$sSearch%' OR `c2` LIKE '%$sSearch%')", NULL, FALSE) 
      ->get(); 

這將輸出查詢你想要的:

SELECT id, c1, c2 FORM t1 WHERE id ='1' AND (c1 LIKE '%3%' OR c2 LIKE '%3%')