sql >> Database >  >> RDS >> Mysql

Codeigniter Active Record - Totaal aantal gevonden rijen tellen met limiet (MySQL)

Ik had eerder exact dezelfde vereiste voor paginering en ik kon het laten werken met CodeIgniter Active Record.

Stel eerst de optie in SQL_CALC_FOUND_ROWS als een pseudo-kolom in uw select-statement en stel de escape-query in op false:

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

Wijs vervolgens, nadat u uw query heeft uitgevoerd met de limiet en offset op hun plaats, de resultaatset toe aan een retourarray:

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

Voer ten slotte een tweede query uit om de gevonden rijen te krijgen en wijs die ook toe aan de retourarray. Ik gebruik hier methodeketen om alles in één stap te doen.

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

En retourneer het resultaat en het aantal rijen.

return $return;


  1. Verleen privileges voor een bepaalde database in PostgreSQL

  2. Draait Oracle de transactie terug bij een fout?

  3. Meerdere MySQL-instanties die op dezelfde machine worden uitgevoerd controleren - ClusterControl Tips &Tricks

  4. Een tabel bijwerken met JOIN in SQL Server?