7

私はこれを見ています。

最大10,000行を返し、通常はメモリをいっぱいにするクエリがあります

私は現在やっています:

$this->db->get()->result_array();

すべてのデータをメモリにロードせず、ある種のカーソルを使用する方法はありますか?結果と結果配列は両方とも配列のようです。(1つはオブジェクトの配列で、もう1つは配列の配列です)

4

2 に答える 2

7

私が個人的にお勧めする Active Record を使用してlimit()いる場合は、探しているものが得られるはずです。

$this->db->limit();

この方法で使用することもできます。コードの行数が少なくなり、少し簡単になります

$query = $this->db->get('Table_Name', 50); //syntax db->get('Table',limit_val);
return $query->result();

オフセット付きの制限を返すこともできます:

$this->db->limit(10, 20); // Second parameter lets you set a result offset

アクティブ レコード クエリの詳細なヘルプへのリンク https://www.codeigniter.com/userguide2/database/active_record.html#select

于 2013-01-07T04:04:48.763 に答える
2

Mysql オフセットは、探しているポインターです。次のように使用できます。

    $this->db->get(tableName,10,20);

2 番目のパラメーターと 3 番目のパラメーターは、 limit と offset を設定するのに役立ちます。

詳細はこちら

于 2013-01-07T04:33:58.910 に答える