Istnieje funkcja stronicowania, która jest wbudowana w 2.2 i robi coś podobnego do tego, czego szukasz:
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:
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(*)