sql >> Databáze >  >> RDS >> Mysql

Doctrine Query k nalezení celkového počtu výsledků v MySQL s LIMIT

Existuje funkce stránkování, která je vestavěna ve verzi 2.2 a dělá něco podobného tomu, co hledáte:

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

Ale nevěřím, že používá SQL_CALC_FOUND_ROWS :dělá dva (nebo tři, podle toho, jak to nakonfigurujete) samostatné dotazy, aby získal výsledky, a to je často správný způsob, jak pokračovat.

Pokud opravdu trváte na použití funkce MySQL, myslím, že musíte použít nezpracované SQL a mapování sady výsledků. Zde je příklad:

Počet řádků v doktríně 2

Ve zcela samostatné poznámce otestujte, zda SQL_CALC_FOUND_ROWS skutečně stojí za to použít pro váš konkrétní dotaz. Count je v MySQL dobře optimalizován pro dotazy, jako je ten, který děláte. Viz zejména tato otázka:

Která je nejrychlejší? SELECT SQL_CALC_FOUND_ROWS FROM `table` nebo SELECT COUNT(*)



  1. Vyberte nejvyšší 3 skóre v každém dni pro každého uživatele

  2. R- Speciální znaky se do mysql nevkládají

  3. Chyba mysql modulu drupal views

  4. Jak vytvořit objekt JSON v MySql s booleovskou hodnotou?