Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在codeigniter中的多行中仅选择一列。如何做到这一点?这是否更有效?_Codeigniter_Activerecord_Query Optimization - Fatal编程技术网

在codeigniter中的多行中仅选择一列。如何做到这一点?这是否更有效?

在codeigniter中的多行中仅选择一列。如何做到这一点?这是否更有效?,codeigniter,activerecord,query-optimization,Codeigniter,Activerecord,Query Optimization,我在考虑效率,但我不确定这是怎么回事 但是我有一大堆行和多列。我只需要所有行中的name字段,其中某个其他键是某个值。我可以这样得到所有这些行: $this->db->where('res_id', $res_id); $q = $this->db->get('products'); return $q->result(); 然后我可以通过它返回的数组foreach,并且只使用每个对象的name方法,如下所示: foreach($returned_value as

我在考虑效率,但我不确定这是怎么回事

但是我有一大堆行和多列。我只需要所有行中的name字段,其中某个其他键是某个值。我可以这样得到所有这些行:

$this->db->where('res_id', $res_id);
$q = $this->db->get('products');
return $q->result();
然后我可以通过它返回的数组foreach,并且只使用每个对象的name方法,如下所示:

foreach($returned_value as $fun):
    echo $fun->name;
endforeach;
但是我想知道,只从每一行中选择name属性是否更有效,我问这个问题感觉很愚蠢,因为我一直在使用activerecord,但是我该怎么做呢。我意识到我可以使用
$this->db->query()
函数写出它,但是有没有办法使用主活动记录命令指定它?谢谢

    $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();
        }