PHP查询mysql的时候用了like和LIMIT分页,如何获得未分页但是like了的总数据量

也就是搜索标题的时候获取搜索的结果总数。会进行两次查询。如何才能合并成一次查询就能获得分页的数据以及所有分页的总数据量。phpmyadmin是怎么做到的?... 也就是搜索标题的时候获取搜索的结果总数。会进行两次查询。如何才能合并成一次查询就能获得分页的数据以及所有分页的总数据量。phpmyadmin是怎么做到的? 展开
 我来答
shenkebiao
2015-09-29 · TA获得超过605个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:151万
展开全部
第一、phpmyadmin 的查询结果显示了分页数据、总条数信息及索引信息,看似只执行了一次查询,实际上是做了多次查询的,只是页面中没显示出来,但是查看 mysql 的运行日志就会发现,其实已经执行了很多条 sql 语句,因为 phpmyadmin 的操作基本都是批量执行增删改查的;

第二、有一种方式可以实现只查询一次就能达到分页的效果,但实际上这种方式是不推荐的,性能比查询两次(一次查总数,一次查分页数据)低了很多,尤其在数据量越大的时候差异越明显;
一次查询的思路是:一次性把满足条件的数据全都查出来,然后再从结果中去取实际分页中要显示的那部分数据;例如,根据标题搜索数据,每页显示20条,一次性总共查出来 1000 条数据,显示第一页的时候就只获取前面的20条,第二页就取第21-40条,第三页就只取41-60条,后面的依次类推。
可想而知,这种查询是很浪费的,我明明只要那一部分数据,却查出了所有的,剩下那部分就根本没用。尤其在数据量大的时候,上万条百万条等等,性能就更差了,如果再加上高并发,那基本就要崩溃了。

所以做分页一般都是查两次比查一次好得多
匿名用户
2015-09-29
展开全部
把第二条sql语句合并到第一条试试!
示例:
select *, (你的第二条sql语句) as `CountNum` from 。。。。。。。。。。。后面自己写

读取这个总条数的时候, $row['CountNum']
追问
整不明白了
整不明白了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
simple丶魂
2015-09-29 · TA获得超过1294个赞
知道小有建树答主
回答量:511
采纳率:0%
帮助的人:293万
展开全部
一条sql语句是做不出2种不同的结果的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式