如何从表中选择具有不同(字段x)的所有字段?笨

时间:2012-08-09 09:45:08

标签: php codeigniter

我试试这段代码

function catstore($id)
    {   
        $this->db->distinct();
        $this->db->select('store_id');
        $this->db->from('products');
        //$this->db->join('products','products.store_id = products.store_id');
        $this->db->where('cat_id', $id);
        $result = $this->db->get();
        return $result->result();       
    }

它只产生不同的store_id,但我希望表中的所有列都具有基于store_id的不同行

建议我任何选择

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以尝试使用group_by

function catstore($id)
{   
    $this->db->select('*');
    $this->db->from('products');
    //$this->db->join('products','products.store_id = products.store_id');
    $this->db->where('cat_id', $id);
    $this->db->group_by('store_id');
    $result = $this->db->get();
    return $result->result();       
}

我知道这个问题已经很久以前了,但有人可能会像我一样寻找同样的问题,这就是我解决它的方法。

答案 1 :(得分:0)

您可以完全省略select功能。如果从表中选择所有(*),则不需要使用此功能。省略时,CodeIgniter假定您希望SELECT *

请参阅http://codeigniter.com/user_guide/database/active_record.html#select

或..

您可以将逗号分隔值传递给select函数。因此,传递要用逗号分隔的所有列名称

function catstore($id)
    {   
        $this->db->distinct();
        $this->db->select('store_id, column1, column2, cloumn3');
        $this->db->from('products');
        //$this->db->join('products','products.store_id = products.store_id');
        $this->db->where('cat_id', $id);
        $result = $this->db->get();
        return $result->result();       
    }