Общие > Базы данных

Посчитать строки при использовании LIMIT

(1/2) > >>

XLighter:
Есть запрос, ищущий подстроку в таблице, попутно вытаскивая часть полей из других таблиц. Все это заканчивается LIMIT n,m. Например:

SELECT hostname,path,filename,size,date,isfile FROM ftpsearch_hosts,ftpsearch_paths,ftpsearch_files WHERE ftpsearch_hosts.id = ftpsearch_files.hostid AND ftpsearch_paths.id = ftpsearch_files.pathid AND (filename LIKE \'%avp%\') AND ftpsearch_files.size >= \'0\' ORDER BY hostname LIMIT 0,30

Как в этом же запросе посчитать, сколько всего записей было найдено? Сколько записей вернул MySQL с учетом LIMIT меня не интересует.

Не хочется делать второй запрос с SELECT count(*) FROM....

Chs:
А по другому ИМХО не получиться, только через SELECT count(*) FROM....

NAS:
Ээээ, а может посчитать не в запросе, ты ведь наверняка результат в массив скидываешь, а вот там и посчитать.

Chs:

--- Цитировать ---Ээээ, а может посчитать не в запросе, ты ведь наверняка результат в массив скидываешь, а вот там и посчитать.

--- Конец цитаты ---

Он не весь результат в массив скидывает, он скидывает только часть, ограниченную LIMIT. А нужно общее количество записей выбранных по данным условиям.

MadDog:
А если разбить запрос на две части, например так:

$sql="SELECT hostname,path,filename,size,date,isfile FROM ftpsearch_hosts,ftpsearch_paths,ftpsearch_files WHERE ftpsearch_hosts.id = ftpsearch_files.hostid AND ftpsearch_paths.id = ftpsearch_files.pathid AND (filename LIKE \'%avp%\') AND ftpsearch_files.size >= \'0\' ORDER BY hostname ";
$query=mysql_query($sql);
$count=mysql_num_rows($query);

$query2=mysql_query($sql."LIMIT 0,30");
//дальше вывод результатов выборки

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии