6

我正在考虑效率,但我并不确定这种或另一种方式。

但我有一堆多列的行。我只需要某个其他键为某个值的所有行中的名称字段。我可以像这样得到所有这些行:

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

然后我可以遍历它返回的数组,并且只使用每个对象的 name 方法,例如:

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

但我想知道,只从每一行中选择名称属性会更有效吗?我觉得很愚蠢,因为我一直在使用活动记录,但我该怎么做。我意识到我可以使用该函数将其写出来$this->db->query(),但是有没有办法使用主要的活动记录命令来指定它?谢谢。

4

1 回答 1

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

我想它更快更有效,因为你没有返回所有东西。

未经测试

这是我使用的一个经过测试的函数,您可能会找到很好的参考

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();
        }
于 2012-08-08T22:39:27.160 回答