0
您可能(或可能不知道)已经知道,SQLite不提供有关查询结果总数的信息。必须将查询包装在SELECT count(*) FROM (original query);
中才能获得行数。在SQLite中计算结果,给出具有函数的查询
这对我来说非常合适,直到用户创建自定义SQL函数(您可以在SQLite中定义自己的函数)将INSERT
转换为另一个不相关的表。然后他执行查询:
SELECT customFunction() FROM primaryTable WHERE primaryKeyColumnId = 1;
查询总是返回1行,这是肯定的。事实证明,customFunction()
被调用了两次(并插入到其他表中的2行),这是因为我的应用程序称为他的查询为usuall,然后在该查询中调用count(*)
作为后续。
如何解决这个问题?如何只执行原始查询并且仍然有来自SQLite的行计数?
我正在使用SQLite(3.13.0)C API。