Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Rekord aktywny Codeigniter — zliczanie wszystkich znalezionych wierszy z limitem (MySQL)

Wcześniej miałem dokładnie takie same wymagania dotyczące paginacji i udało mi się to zrobić za pomocą CodeIgniter Active Record.

Najpierw ustaw opcję SQL_CALC_FOUND_ROWS jako pseudokolumnę w instrukcji select i ustaw zapytanie escape na false:

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

Następnie, po wykonaniu zapytania z limitem i przesunięciem w miejscu, przypisz zestaw wyników do tablicy zwracanej:

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

Na koniec uruchom drugie zapytanie, aby uzyskać znalezione wiersze, a także przypisz je do tablicy zwracanej. Używam tutaj łączenia metod, aby zrobić to wszystko w jednym kroku.

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

I zwróć wynik i tablicę liczby wierszy.

return $return;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Dodaj ograniczenie, jeśli nie istnieje

  2. InnoDB zajmuje ponad godzinę, aby zaimportować plik 600MB, MyISAM w kilka minut

  3. MySQL:usuń wszystkie wiersze, nie tylko zaktualizowane

  4. Hibernacja zapytania wyszukiwania

  5. MySql określa przesunięcie wiersza z wyniku zapytania