既に知っている(またはそうでないかもしれない)ので、SQLiteはクエリの結果の総数に関する情報を提供しません。行数を取得するには、クエリをSELECT count(*) FROM (original query);
にラップする必要があります。関数で指定されたクエリでSQLiteの結果が返される
INSERT
を別の無関係のテーブルに作成するカスタムSQL関数(SQLiteで独自の関数を定義することができます)を作成するまで、これは私にとっては問題なく機能しました。次にクエリを実行します。
SELECT customFunction() FROM primaryTable WHERE primaryKeyColumnId = 1;
クエリは常に1行を返します。 customFunction()
が2回呼び出されたことが判明しました。これは、私のアプリケーションがusuallというクエリを呼び出してから、そのクエリでcount(*)
をフォローアップとして呼び出したためです。
どのようにこの問題にアプローチしますか?どのように元のクエリだけを実行し、まだSQLiteからの行数を持っている?
私はSQLite(3.13.0)C APIを使用しています。