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

Doctrine Query, aby znaleźć całkowitą liczbę wyników w MySQL z LIMIT

Istnieje funkcja stronicowania, która jest wbudowana w 2.2 i robi coś podobnego do tego, czego szukasz:

https://www.doctrine -project.org/projects/doctrine-orm/en/latest/tutorials/pagination.html#pagination

Ale nie wierzę, że używa SQL_CALC_FOUND_ROWS :wykonuje dwa (lub trzy, w zależności od konfiguracji) oddzielne zapytania, aby uzyskać wyniki, i często jest to właściwy sposób postępowania.

Jeśli naprawdę nalegasz na używanie funkcji MySQL, myślę, że musisz użyć surowego SQL i mapowania zestawu wyników. Oto przykład:

Liczba wierszy w Doctrine 2

Oddzielnie sprawdź, czy SQL_CALC_FOUND_ROWS warto użyć do konkretnego zapytania. Count jest dobrze zoptymalizowany w MySQL dla zapytań takich jak to, które wykonujesz. Zobacz w szczególności to pytanie:

Który jest najszybszy? SELECT SQL_CALC_FOUND_ROWS FROM `table` lub SELECT COUNT(*)



  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 jak nie uwzględniać zduplikowanych wierszy, gdy używam SUM i COUNT z wieloma INNER JOINS?

  2. Nie można załadować stref czasowych?

  3. Błąd SQL 1630:Funkcja SUBSTRING nie istnieje.. co?

  4. Jak wykonać kopię zapasową / wyeksportować bazę danych MySQL za pomocą PHP

  5. Problemy z wyświetlaniem obrazów blob