Вопрос такой:
При запросе в MySQL получаем набор записей, типа
SQL |
SELECT * from t_Table LIMIT 200, 50 |
SQL |
LIMIT 200, 50 |
SQL |
SELECT * from t_Table |
SQL |
SELECT FOUND_ROWS(); |
Цитата |
1. Выполнить этот же запрос без лимита и вместо * с COUNT(*) |
Цитата |
поставить SQL_CALC_FOUND_ROWS сразу после слова SELECT в этом же запросе с LIMIT.... |
Цитата (maq @ 25.06.2009 - 14:26) |
Кажется без 2-х запросов не обойтись |
Цитата (maq @ 25.06.2009 - 14:26) |
попробовал - не подойдет. Он возвращает кол-во фактически возвращенных записей (рядов). Т.е если в таблице 100 записей и используется LIMIT 50, 10, то mysql_num_rows() вернет 10, а не 100 (как мне надо). |
Цитата |
Полюбому) |
Цитата (kirik @ 25.06.2009 - 19:37) | ||||
Полюбому)
Что-то не так пробовал.. |
SQL |
SELECT FOUND_ROWS(); |
Цитата (glock18 @ 26.06.2009 - 10:33) |
mysql_num_rows() тоже выполняет запрос |
Цитата (maq @ 26.06.2009 - 10:21) |
То вы подтверждаете, что без 2-х запросов не обойтись. С другой стороны, утверждаете, что "я не так пробовал", т.е. можно получить ответ используя mysql_num_rows() одним запросом? Это не противоречит одно другому? |
Цитата (maq @ 25.06.2009 - 14:26) | ||
попробовал - не подойдет. Он возвращает кол-во фактически возвращенных записей (рядов). |
PHP |
// делаем запрос с LIMIT |
PHP |
// делаем запрос с LIMIT |
Цитата (kirik @ 26.06.2009 - 15:58) |
Разве? Я почему-то думаю что эта функция пересчитывает элементы из возвращенного результата mysql_query();.. |
Цитата |
Дабы развеять сомнения, приведу код: |
Цитата | ||
Дабы развеять сомнения, приведу код:
|