2012-08-08 17 views
5

Estoy pensando en la eficiencia, y no estoy realmente seguro de una u otra manera.Seleccione solo una columna de varias filas en codeigniter. ¿Cómo y es esto más eficiente?

Pero tengo un grupo de filas con varias columnas. Solo necesito el campo de nombre de todas las filas donde una cierta otra clave tiene un cierto valor. Puedo obtener todas estas filas como esto:

$this->db->where('res_id', $res_id); 
$q = $this->db->get('products'); 
return $q->result(); 

entonces puedo foreach través de la matriz que devuelve y sólo utilice el método nombre de cada objeto liek esto:

foreach($returned_value as $fun): 
    echo $fun->name; 
endforeach; 

Pero me pregunto, ¿Sería más eficiente seleccionar solo el atributo de nombre de cada fila, y me siento estúpido preguntándolo porque he estado usando el registro activo para siempre, pero cómo voy a hacerlo? Me doy cuenta de que podría escribirlo usando la función $this->db->query(), pero ¿hay alguna manera de especificarlo usando los principales comandos de registro activo? Gracias.

Respuesta

6
$this->db->select('name'); 
    $this->db->from('tblNAME'); 
    $this->db->where('res_id', $res_id); 
    return $this->db->get()->result(); 

Supongo que es más rápido y más eficiente ya que no devuelve todo.

sin probar

Aquí es una función probado utilizo el que es posible encontrar buena reeference

function get($id = null) 
     { 
      $this->db->select('id, Username, First_Name, Last_Name, Role, Email'); 
      $this->db->from('user'); 
      if (!is_null($id)) $this->db->where('id', $id); 
      $this->db->order_by('id', 'desc'); 
      return $this->db->get()->result(); 
     } 
+0

wow. jaja, se olvidó por completo de select(). Ya, eso funcionará. – Rooster

Cuestiones relacionadas