在做数据查询的时候,对于一些复杂的查询条件,我采用的是直接编写 sql 语句查询,但是由于要做分页,所以之前我每次都是多加一条 select count(*) sql 语句,后来无意中发现,其实 mysql 是可以支持 limit 查询下获取总行数的,用法如下:
SELECT SQL_CALC_FOUND_ROWS fldName1, fldName2 FROM tblName WHERE fldName3 = 1 LIMIT 10,20;
SELECT FOUND_ROWS();
深入研究 SQL_CALC_FOUND_ROWS 发现,如果查询条件中专门指定了 field, 会发现 SQL_CALC_FOUND_ROWS 方式比 select count(*) 查询的效率更高,还是很不错的,推荐使用
在处理 union 查询的时候比较难以做分页,添加 SQL_CALC_FOUND_ROWS 参数同样可以获取 union 结果的行数
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于