sql >> Databasteknik >  >> RDS >> Mysql

Doktrinfråga för att hitta totalt antal resultat i MySQL med LIMIT

Det finns en sidnumreringsfunktion, som är inbyggd i 2.2, och som gör något liknande det du letar efter:

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

Men jag tror inte att den använder SQL_CALC_FOUND_ROWS :det gör två (eller tre, beroende på hur du konfigurerar det) separata frågor för att få resultaten, och det är ofta det korrekta sättet att fortsätta.

Om du verkligen insisterar på att använda MySQL-funktionen tror jag att du måste använda rå SQL och en resultatuppsättningsmapping. Här är ett exempel:

Antal rader i doktrin 2

På en helt separat notering, testa om SQL_CALC_FOUND_ROWS är faktiskt värt att använda för just din fråga. Count är väl optimerad i MySQL för frågor som den du gör. Se särskilt denna fråga:

Vilket är snabbast? VÄLJ SQL_CALC_FOUND_ROWS FRÅN "tabell", eller VÄLJ ANTAL(*)



  1. Transaktionshantering med Django 1.6

  2. Det går inte att ansluta till MySQL och utföra operationer i Play Framework 2.4

  3. Hur TIME_TO_SEC() fungerar i MariaDB

  4. Unik nyckel i Oracle med exempel