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_count
和sqlite3_column_count
都返回列数,前者用于当前行,后者用于语句本身。特别是,SQLite 中没有函数告诉您一条语句将返回多少行,因为它不知道。您必须遍历行,或执行单独的 COUNT(*)
查询。以上是关于sqlite 语句中返回的行数的主要内容,如果未能解决你的问题,请参考以下文章