postgresql有没有像mysql的FOUND_ROWS()一样的函数或别的来获取查询数量呢?

mysql在查询sql的select后面跟上 SQL_CALC_FOUND_ROWS
然后再执行一遍 SELECT FOUND_ROWS();就可以获取sql不带limit的查询结果数量了
postgresql 有没有这样的方法呢?

mysql
postgresql
sql
2022-07-21 13:23:23
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
疑惑的冒险者
2

没有完全对等的特性。

事实上,MySQL的这个特性唯一适用的场景就是做Web应用开发的分页查询,其他场景下没有看出来有什么合适的用武之处,而PostgreSQL的一个主要原则就是要尽量遵循SQL标准,所以PG中不太可能指望官方支持这类方言。而且带SQL_CALC_FOUND_ROWS的SELECT语句无法被缓存,所以性能上未比就是好选择

建议封装一个只读事务来做这个事情吧

BEGIN TRANSACTION READ ONLY;
SELECT col1,... FROM table WHERE condition LIMIT xx OFFSET yy;
SELECT COUNT(col1) FROM table WHERE condition;
END;

反正就算你用SQL_CALC_FOUND_ROWS也是得写两句SELECT,开发量上差不多
 
 

分享
微博
QQ
微信
回复
2022-07-21 15:25:28
相关问题
JS swiper 怎么list一样动态添加item?
6356浏览 • 1回复 待解决
mysql 关联查询问题有没有知道
2426浏览 • 1回复 待解决
Web组件获取高度不一样
2291浏览 • 1回复 待解决
如何查询fd数量限制
1484浏览 • 1回复 待解决
PostgreSQL json 类型查询
4181浏览 • 2回复 待解决