Главная > Новости > Подсчет записей в базе данных для пагинатора

Подсчет записей в базе данных для пагинатора

При создании пагинатора или вывода количества записей для данного запроса на странице обычно используется 2 одинаковых запроса SELECT. Первым запросом мы считаем общее кол-во записей, соот-щих данным условием SELECT COUNT(*)… , вторым запросом выдергиваем кол-во записей нужных для этой страницы, используя LIMIT. В итоге мы получаем два огромных медленных запроса. Есть решение как сделать все это действие 1 большим запросом и 1 маленьким:

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE column > 1 LIMIT 0, 50;

Первым делаем наш запрос, что раньше шел вторым, т е тот что с лимитом, но добавляем в него SQL_CALC_FOUND_ROWS
Далее делаем запрос, который вернет общее кол-во записей, соот-щих условию предыдущего запроса, без учета LIMIT:
SELECT FOUND_ROWS();
Второй запрос должен выполняться сразу после первого.

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Categories: Новости Tags:
  1. Пока что нет комментариев.
*