2015-06-22 11 views

risposta

1

È possibile produrre la query come questo

$this->db->from('user'); 
$this->db->select('RIGHT(id, 1) id_root',false); 
$this->db->where('LENGTH(id)',3,true); 
$this->db->where('LEFT(id, 1) =','0',true); 
$results=$this->db->get()->result(); 

Ricordare se si desidera utilizzare la funzione mysql nella query selezionata che potrebbe interrompere la sintassi mysql mediante codeigniter utilizzare false come secondo parametro in modo che codeigniter non protegga/copra i campi.

Uguale per dove, se si desidera utilizzare la funzione mysql o un'altra funzione che può interrompere la sintassi mysql con CI, utilizzare il 3 ° parametro come vero in modo che codeigniter non converta i campi.

Vedi dettagli a documentation

modo più semplice per ottenere qualsiasi risultato di una query utilizzando $this->db->query('YOUR_QUERY') Ma io preferisco usare le funzioni CI del record attivo.

+0

grazie per la risposta, ed è perfettamente – nanasjr

1
$query = "SELECT RIGHT(id, 1) id_root 
      FROM user 
      WHERE LENGTH(id) = 3 
      and LEFT(id, 1) = '0'"; 
$result = $this->db->query($query); 
3
$result_arr = $this->db 
     ->select("RIGHT(id, 1) id_root", FALSE) 
     ->from("user") 
     ->where(
       array("LENGTH(id)"=> 3, "LEFT(id, 1) =" => 0) 
     )->get() 
     ->result_array(); 

Oppure si può semplicemente utilizzare $this->db->query("You SQL");

$query = "SELECT RIGHT(id, 1) id_root 
      FROM user 
      WHERE LENGTH(id) = ? 
      and LEFT(id, 1) = ? "; 
$result_arr = $this->db->query($query, array(3, 0))->result_array();