在Codeigniter中使用group_by选择('*')

时间:2015-04-01 12:20:34

标签: php arrays codeigniter

我在codeigniter工作。我的问题是我想显示所有具有相同ID的行。但是当我执行group_by时,它只输出该组的一行。

下面是我的模特

function category_content(){
        $this->db->select('*');
        $this->db->from('category');
        $this->db->group_by('category_id');
        $query = $this->db->get();
        return $query->result_array();
    }

请帮忙。

2 个答案:

答案 0 :(得分:1)

根据sql属性Group By对所有匹配的记录进行分组,并且只显示一个。看来你想按id排序它们。然后最好使用order by

答案 1 :(得分:0)

参见示例希望您能了解这一点..

    tableA
    _____
    id  name    marks
    --  ----    ---
    1   x       25
    2   y       27
    1   z       30


    SELECT * FROM tableA group by id

OUTPUT:
1   x   25
2   y   27

在你的情况下你应该使用WHERE子句。

    SELECT * FROM tableA WHERE id=1

OUTPUT:
1   x   25
1   z   30


    function category_content(){
            $this->db->select('*');
            $this->db->from('category');
            $this->db->where($category_id);
            $query = $this->db->get();
            return $query->result_array();
        }

https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html