2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SupabaseでCountを取る

Posted at
supabase().
    select('count(*)')
    .from('hoge')
    .then((res) => {
        console.log(res)
    })

こんな感じでいけるだろうと書いてみるとSELECT句がおかしいよーというエラーを吐かれた。少し調べてみると、selectの引数にオプションを渡せることがわかった。

image.png
https://supabase.com/docs/reference/javascript/select

countを指定するとどの様に算出するかを決められる。

  • exact: 計算は遅いけど正確な値を算出
  • planned: おおよその値だがpostgresの統計情報を使って速く算出
  • estimated: 少数であればexactとして機能、量が多くなるとplannedとして機能

headtrueにするとresultにdataを含まない。(実装していてわかったが、dataの代わりにcountが出現する。)

今回の用途としてはページングの際の最大量を取りたいのでexactを指定して正確な値を取得。レコード自体は別のクエリで取得するためheadtrueを設定。

supabase().
    select('*', {count: 'exact', head: true})
    .from('hoge')
    .then((result) => {
        console.log(result.count)
    })

こんな感じでCountが取れましたとさ。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?