sql >> Database teknologi >  >> RDS >> Mysql

Codeigniter Active Record - Antal fundne rækker i alt med grænse (MySQL)

Jeg har tidligere haft nøjagtig samme krav til paginering, og jeg var i stand til at få det til at fungere ved hjælp af CodeIgniter Active Record.

Indstil først indstillingen SQL_CALC_FOUND_ROWS som en pseudo-kolonne i din select-sætning og indstil escape-forespørgsel til false:

$this->db->select('SQL_CALC_FOUND_ROWS null as rows, other columns ...',FALSE);

Når du har udført din forespørgsel med grænsen og offset på plads, skal du tildele resultatsættet til et returarray:

$data = $this->db->get();
$return['results'] = $data->result();
// Do something with the results

Til sidst skal du køre en anden forespørgsel for at få de fundne rækker og også tildele det til returarrayet. Jeg bruger metodekæde her til at gøre det hele i ét trin.

$return['rows'] = $this->db->query('SELECT FOUND_ROWS() count;')->row()->count;

Og returner resultatet og rækketæller-arrayet.

return $return;


  1. Hvordan gemmer man en procentværdi?

  2. jOOQ indsæt forespørgsel med returnerende genererede nøgler

  3. Migrering af en MySQL-database fra CloudSQL til AWS RDS

  4. Ændring af en kolonne:null til ikke null