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?
2621浏览 • 1回复 待解决
Mysql geojson 查询问题有懂吗?
516浏览 • 1回复 待解决
有没有获取当前网速api?
934浏览 • 1回复 待解决
使用OrmPredicates无法做函数查询吗?
2392浏览 • 1回复 待解决
鸿蒙和安卓有什么不一样
2874浏览 • 3回复 待解决
有没有调用日历接口?
1992浏览 • 1回复 待解决
鸿蒙有没有类似carplay应用
4171浏览 • 1回复 待解决
帮朋友求份工作,有没有推荐
462浏览 • 3回复 待解决