php - 如何在执行结束前逐步打印SQL查询结果?

标签 php sql postgresql pagination

我正在做一个相当大的 Postgres 查询。尽管等待查询结束回显所有结果,是否有可能逐渐回显结果?

我的代码:

$sql1 = pg_query("select zhu_gid from indicateurs.note where zhu_gid not in (select gid from public.zh);");

while($data = pg_fetch_array($sql1))
   {
   echo $data['zhu_gid']."/";
   }

最佳答案

关于你的问题:没有。Postgres自己先构建结果集,然后返回给客户端。

你可以使用 cursor为此(仍然必须先成功执行查询)。或者多个查询,用 LIMIT / OFFSET 对结果进行分区或(最好)确定性 WHERE 条件。您需要为这些添加确定性的 ORDER BY。但是所有这些分页解决方案都有其特定的困难。相关:

除此之外,我不会使用NOT IN。见:

改为考虑:

SELECT n.zhu_gid
FROM   indicateurs.note n
LEFT   JOIN public.zh ON zh.gid = n.zhu_gid
WHERE  zh.gid IS NULL;

关于php - 如何在执行结束前逐步打印SQL查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55747691/

相关文章:

php - 关于使我的 WordPress 网站变慢的查询

sql - 更新大型表的主表和子表的主键

sql - 返回受 UPDATE 语句影响的行数

sql - 使用同一表中同一列的值更新列

database - 错误 :must be owner of database

mysql - 在sql中组合多个计数查询

javascript - 3层嵌入引号,JS函数不注册变量

php - PayPal IPN - 不能沙箱

php - Slim v3 使用自定义类添加中间件

SQL Server : error creating table with multiple primary keys