从Go中获取SQL查询的计数和结果

Are*_*rel 5 sql go

我正在使用一个非常简单的查询database/sqllib/pq(Postgres的)包,我想折腾的一些字段的结果成片,但我需要知道如何大,使切片.

我能找到的唯一解决方案就是做另一个查询SELECT COUNT(*) FROM tableName;.

有没有办法在一个查询中获取查询结果和返回行的计数?

Ale*_*hov 3

从概念上讲,问题在于数据库游标可能不会枚举到最后,因此数据库在实际读取所有记录之前并不真正知道您将获得多少条记录。唯一的计数方法(一般情况下)是遍历结果集中的所有记录。

但实际上,您可以通过使用子查询来强制执行此操作,例如

select *, (select count(*) from table) from table
Run Code Online (Sandbox Code Playgroud)

并且忽略第一列以外的记录的第二列。但这是非常粗鲁的,我不建议这样做。