sqlite 语句中返回的行数

Posted

技术标签:

【中文标题】sqlite 语句中返回的行数【英文标题】:Number of rows returned in a sqlite statement 【发布时间】:2011-02-18 20:01:20 【问题描述】:

有什么简单的方法可以获取 sqlite 语句返回的行数吗?我不想先完成 COUNT() 的过程。谢谢。

【问题讨论】:

【参考方案1】:

在每次调用 sqlite_step 时,将变量加 1。

如果你想要提前行计数,那么没有简单的方法。

【讨论】:

谢谢 dan,增加变量似乎是最简单的方法。 这是个坏消息。我想malloc一个数组来存储结果,不调用两次同一个select语句就无法提前知道需要多大!【参考方案2】:

要统计表中的所有条目,可以使用以下 SQL 语句:

SELECT COUNT(*) FROM "mytable" where something=42;

或仅通过以下方式获取所有条目:

SELECT COUNT(*) FROM "mytable";

如果您已经完成查询,并且只想要返回的条目数,您可以使用 sqlite3_data_count() 和 sqlite3_column_count(),具体取决于您要计算的内容。

【讨论】:

OP 专门要求一种方法来避免 COUNT. sqlite3_data_countsqlite3_column_count 都返回列数,前者用于当前行,后者用于语句本身。特别是,SQLite 中没有函数告诉您一条语句将返回多少行,因为它不知道。您必须遍历行,或执行单独的 COUNT(*) 查询。

以上是关于sqlite 语句中返回的行数的主要内容,如果未能解决你的问题,请参考以下文章

计算本周 SQLite 数据库中的行数

sqlite中数据存在更新,数据不存在添加的语句怎么写

计算 SQLite 数据库中的行数

如何使用 SQLite 在 Android 中获取查询的行数?

重置 SQLite3/MySQL 中的行数计数

在 SQLite-WinRT 包装器中使用“更新”或“删除”查询获取受影响的行数