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。