2012-08-08 27 views
5

我在考慮效率,而且我不確定這種或那種方式。從codeigniter中的多行中只選擇一列。如何和更高效?

但我有一堆有多列的行。我只需要所有行中的某個其他鍵具有特定值的名稱字段。我可以得到所有這些行是這樣的:

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

的話,我可以通過陣列,它返回,並且只使用每個對象的名稱方法liek本的foreach:

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

但我想知道,僅從每行中選擇name屬性會更有效率,而且我覺得這很愚蠢,因爲我一直在使用活動記錄,但是我會如何去解決這個問題。我意識到我可以用$this->db->query()函數寫出來,但是有沒有辦法使用主要活動記錄命令來指定它?謝謝。

回答

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

我認爲這樣更快,更高效,因爲你沒有返回任何東西。

UNTESTED

這裏是一個測試功能,我使用它你會發現好的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

哇。大聲笑,完全忘了選擇()。遐,這將工作。 – Rooster 2012-08-08 23:04:49

相關問題