最初处理查询时,SQLite不会“获取”所有行。每次执行准备好的查询时,它都会返回一行。
从此处的SQLite3常见问题解答
问)哪个函数可以获取行数?
A)没有函数来检索结果集中的行数。SQLite事先不知道数字,但是在遍历表时逐行返回。应用程序可以在每个成功的sqlite3_step()处根据需要增加行计数器。
一些包装器能够收集内存表中结果集中的所有行,因此它们可以返回行数。
您总是可以获取某些SELECt语句返回的行数,但会降低性能:
BEGIN IMMEDIATE TRANSACTION;SELECT COUNT(*) FROM x WHERe y;SELECt a,b,c FROM x WHERe y;ROLLBACK TRANSACTION;
您必须将其包装在事务中,以防止其他连接在两个SELECT语句之间插入/删除行。



