我正在查看this。代碼點火器查詢結果大result_array()結果
我返回多達10,000行的查詢,通常填補了
我目前在做記憶:
$this->db->get()->result_array();
有沒有一種辦法並不是所有的數據加載到內存中,並使用某種光標?看起來結果和結果數組都是數組。 (其中一個是其他對象的陣列,另一個是陣列陣列)
我正在查看this。代碼點火器查詢結果大result_array()結果
我返回多達10,000行的查詢,通常填補了
我目前在做記憶:
$this->db->get()->result_array();
有沒有一種辦法並不是所有的數據加載到內存中,並使用某種光標?看起來結果和結果數組都是數組。 (其中一個是其他對象的陣列,另一個是陣列陣列)
如果您使用的是我個人推薦的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
鏈接獲得更多有關Active Record Query的幫助 http://ellislab.com/codeigniter/user-guide/database/active_record.html#select
Mysql偏移量是您正在查找的指針。 你可以用它喜歡:
$this->db->get(tableName,10,20);
第二個參數,第三個幫助您設置限制和抵消。
您可以使用[分頁](http://ellislab.com/codeigniter/user-guide/libraries/pagination.html)有限制,即'$查詢= $這個 - > DB->得到('mytable',10,20);'。 –
我希望不要分頁,但我想我將來必須爲大型查詢做到這一點。 –
你不能只使用限制條款嗎? –