From: | "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org> |
---|---|
To: | pgsql-ru-general(at)postgresql(dot)org |
Subject: | Re: аналог mysql'ного SQL_CALC_FOUND_ROWS |
Date: | 2011-03-20 10:29:10 |
Message-ID: | 20110320102910.GI32682@apache.rbscorp.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-ru-general |
>> в MySQL есть такая штука:
>>
>> SELECT
>> SQL_CALC_FOUND_ROWS
>> *
>> FROM
>> table
>> WHERE
>> somewhere
>> LIMIT
>> 10
>>
>> если указать флаг SQL_CALC_FOUND_ROWS, то при выполнении запроса
>> выполнится так же подсчет количества записей в таблице вообще,
>> соответствующих условию somewhere. которое можно будет потом
>> использовать для вычисления числа страниц в пейджере итп
ANO> Я думаю, это псевдоним count(*) :-)
нет.
SELECT ... LIMIT 10 если нет ORDER BY в общем случае выбирает первые
10 элемнтов удовлетворяющих условию somewhere.
а чтобы получить количество всех элементов, надо просмотреть всю
таблицу без лимита.
то есть указанный запрос есть алиас двух запросов:
SELECT * FROM table WHERE somewhere LIMIT 10
SELECT COUNT(*) FROM table WHERE somewhere
только выполняются они в один проход
>> есть ли в Pg какой-то аналогичный механизм?
ANO> Есть ли в этом какой-то смысл?
ну если мы какую-то таблицу показываем пользователю в виде разбиения
на страницы, то смысл прямой: надо ему показывать и сколько страниц
есть и содержимое конкретной страницы
ANO> Любая библиотека предоставляет эту информацию после выполнения запроса.
а можно подробнее?
--
. ''`. Dmitry E. Oboukhov
: :’ : email: unera(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
From | Date | Subject | |
---|---|---|---|
Next Message | Andrey N. Oktyabrski | 2011-03-20 11:49:32 | Re: аналог mysql'ного SQL_CALC_FOUND_ROWS |
Previous Message | Andrey N. Oktyabrski | 2011-03-20 09:48:39 | Re: аналог mysql'ного SQL_CALC_FOUND_ROWS |