как получить общее количество выбранных записей без учета LIMIT?

loonySan

Новичок
как получить общее количество выбранных записей без учета LIMIT?

Задача:
Нужно посчитать общее количество выбранных записей удовлетворяющих определенному условию и выдать первые скажем 10.
ничего умнее этого я не придумал:
$query = "SELECT * FROM object WHERE category_id = 4 ;";
$r = mysql_query($query);
$result_row=mysql_num_rows($r);

$query = "SELECT * FROM object WHERE category_id = 4 LIMIT 0,10;";
$r = mysql_query($query);
.....

Вопрос: Как оптимальней можно решить эту задачу?
Заранее спасибо!
 

loonySan

Новичок
2-мя запросами
сначало выбрал все записи по условию и сохранил их количество.
а потом такой же запрос только выбрал первые 10 записей (LIMIT 0,10) и использую результат запроса.
Незнаю на сколько это разумно т.к. я новичек.

В целом, хочу организовать постраничный вывод данных порциями по 10 шт.
 

alpine

Новичок
loonySan
1) SELECT COUNT(*) ... + SELECT *
2) FOUND_ROWS()

-~{}~ 29.05.08 11:28:

PS Мануал тут http://dev.mysql.com/doc/refman/5.0/en/index.html
 

loonySan

Новичок
Спасибо! Нарыл еще такую конструкцию:

SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();

тоже 2 запроса, но так говорят работает быстрее!
 
Сверху