我在我的应用程序中做了一些分页,使用PostgreSQL的标准OFFSET和LIMIT关键字从数据库中一次返回20行。例如,获取第1页:
SELECT stuff FROM table WHERE condition ORDER BY stuff OFFSET 0 LIMIT 20
应用程序的一个要求是我们还向用户显示记录的总数。所以,很明显,我可以通过发出一个单独的查询来获得总数:
SELECT COUNT(*) FROM table WHERE condition
但是如果有大量的行,那么这不是最佳解决方案。我注意到MySQL有一个非常有用的函数FOUND_ROWS(),它正好可以实现我想要的功能:
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function%5Ffound-rows
在PostgreSQL中有等价的吗?
3条答案
按热度按时间beq87vna1#
PostgreSQL已经有一段时间了,window functions可以用来做很多事情,包括在LIMIT应用之前计数行。
基于上面的示例:
m528fe3b2#
没有等价物。看
http://archives.postgresql.org/pgsql-novice/2007-07/msg00108.php
64jmpszr3#