gpt4 book ai didi

php - 以编程方式替换 sql 查询中的 SELECT 字段以确定结果数

转载 作者:行者123 更新时间:2023-11-30 23:57:43 25 4
gpt4 key购买 nike

给定任何查询(分组、联接和子查询都可以任意组合),我想尽可能高效地使用分页将其分解。现在我只是运行查询,然后计算返回到 PHP 的行数,计算出有多少页数据,显示当前页面上的数据,并输出到其他页面的正确链接。

但在我看来,来自查询的可能非常大的结果集大部分都被浪费了。有没有一种方法可以运行查询两次,第一次选择 COUNT(*) 以获取包含要分页的行的单个数字,第二次运行原始查询时根据当前正在查看的页面设置适当的限制?这会大大减轻数据库服务器的负担吗?

对于简单的查询,这没有问题...用 count(*) 替换 SELECT 之后和 WHERE 之前的所有内容。但是,如果查询中存在分组,这将不起作用,因为您将获得每个组中的计数,而不是总行数。如果您在 a、b 和 c 列上分组,选择 count(distinct a, b, c) 是否正确?是否需要做任何特殊的事情来处理子查询?

最佳答案

您可以使用 SQL_CALC_FOUND_ROWS给你你的小结果集,但也让 MySQL 计算无限结果集的大小:

SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name LIMIT 10;

SELECT FOUND_ROWS();

关于php - 以编程方式替换 sql 查询中的 SELECT 字段以确定结果数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1131467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com