Получить количество строк не учитывая LIMIT

Сегодня наткнулся на интересную опцию в SQL. Возможно многие о ней знают, но я до сегодняшнего дня о ней не знал.
Представим, есть ситуация: нужно сделать запрос с ограничением получения строк(LIMIT), но и в тоже время нужно узнать полное количество строк подходящих под условия запроса. Это ситуация может использоваться, например, в пагинаторе. И так, я всегда в таких случаях делал два запроса, хотя понимал, что это лишняя нагрузка, но ни чего не мог поделать. Но теперь я зная, как делать правильно и покажу вам. Все очень просто:

SELECT SQL_CALC_FOUND_ROWS * FROM `table_name` LIMIT 3;
SELECT FOUND_ROWS();

Такой запрос вернет два результата: количество строк с учетом limit и без учета.

В php можно обработать этот запрос так:

$res = mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM `table_name` LIMIT 3", $query);
$result1 = array();
while ($row = mysql_fetch_assoc($res))
{
$result1[] = $row; 
}
$result2 = mysql_query("SELECT FOUND_ROWS()", $query);
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*