1

親 ID が $parent_id に等しい列順序の最大値を取得するためのアクティブ レコード クエリを作成したいと考えています。

これまでのところ、私はこれを持っています:

function get_biggest_order($parent_id)
    {
        $result = 0;
        if(!empty($parent_id)) 
        {
            $this->db->where('parent_id', $parent_id);
            $result = $this->db->get('pages');
        }
        return $result;
    }

しかし、ご覧のとおり、注文列が最大の値 (14 など) を持つ 1 つの行だけではなく、すべての行を取得しています。

どうやってするか?

私は次のようなことを考えていました:

$this->db->where('parent_id', $parent_id);
$this->db->where('order', something is the biggest);
$result = $this->db->get('pages');
4

2 に答える 2

1

使用する必要がありますorder_by

$this->db->where('parent_id', $parent_id);
$this->db->order_by('order', 'desc');
$this->db->limit(1);
$result = $this->db->get('pages')->row();
于 2013-03-12T13:49:29.230 に答える
1

メソッドは、select_max()使用する必要があるものです。はるかに高速で、より自明です。

于 2013-03-13T06:48:42.257 に答える