SQLite语句返回的行数

12

有没有简单的方法可以获取sqlite语句返回的行数?我不想经历先执行COUNT()的过程。谢谢。

2个回答

9

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

如果您想要提前获取行数,则没有简单的方法。


谢谢丹,增加变量似乎是最简单的方法。 - Christopher Brady
这是个坏消息。我想要malloc一个数组来存储结果,但是如果不调用两次相同的select语句,我无法预先知道它需要多大! - sudo

1

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

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

或者只需使用以下代码获取所有条目:

SELECT COUNT(*) FROM "mytable";

如果您已经进行了查询,并且只想知道返回的条目数,您可以使用sqlite3_data_count()sqlite3_column_count()函数,具体取决于您想要计数的内容。

3
楼主特别要求避免使用 COUNT 的方法。 - dan04
sqlite3_data_countsqlite3_column_count都返回列数,前者返回当前行的列数,后者返回语句本身的列数。特别地,在SQLite中没有函数可以告诉您语句将返回多少行,因为它不知道。您必须迭代行,或执行单独的COUNT(*)查询。 - Cris Luengo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接