私は...するだろう考えるこれは SQL に似たものなら簡単です! 私が欲しいのは、次の GQL に相当するものです:
select count(*) from foo;
次のような答えが返ってきます:
1972 records.
そして、私はこれをウェブベースのデータストア ビューアの「コマンド ライン」から GQL で実行したいと考えています。(ご存知のとおり、一度に 20 個を表示し、「次の 20 個」を表示できるビューアです)
とにかく、それはとても簡単なことだと思いますが、正しい構文が見つからないようです。どんな助けでもいただければ幸いです。
ありがとう!
ベストアンサー1
ストレートなデータストアコンソールでは、直接これを行う方法はわかりませんでしたが、OFFSET キーワードを使用して間接的に行う方法がわかりました。
したがって、テーブルが与えられた場合、type というフィールドで "bar" という名前の値をチェックする foo を呼び出します。
SELECT * FROM foo WHERE type="bar" OFFSET 1024
(ここでは、バイナリ スタイルの「暖かい、寒い」という簡単なゲームを行います)
クエリが何も返さないとします。OFFSET を 512、次に 256、128、64 などに変更します。逆の場合も同じです。つまり、レコードが表示されなくなるまで 2048、4096、8192、16384 などと増やし、その後元に戻します。
職場で 1 つやってみました。2048 から始めて、2 つのレコードが出てきたことに気が付きました。テーブルには 2049 があります。もっと極端な場合 (3300 のレコードがあるとします)、2048 から始めて、たくさんあることに気が付き、4096 に行っても何もないことがわかります... 次に中間点 (2048 と 4096 の間の 1024 は 3072) を取り、レコードがあることがわかります... そこから前の中間点の半分 (512) を追加して 3584 になりますが、何もありません。半分 (256) 減らして 3328 になりますが、まだ何もありません。もう一度半分 (128) 減らして 3200 になると、レコードがあります。最後の値の半分 (64) まで増やすと、まだレコードがあります。さらに半分(32)上がって 3296 になります。これはまだ記録ですが、非常に小さいため、ちょうど 3300 であることが簡単にわかります。
テーブル内のレコード数を確認する場合、データストア統計と比較してこの方法の良い点は、WHERE 句で制限できることです。