如何在 Supabase 中获取 "COUNT(*)"

How to get "COUNT(*)" in Supabase

我想在 Supabase 中检索行数。

我猜应该是这样的:

const { data, error } = await supabase
  .from('cities')
  .select('name', 'COUNT(*)')

Supabase 可以吗?

目前尚不支持,但 Github 上有一个 WIP issue 可以将此功能引入 Supabase。

下面的代码还没有在 Supabase 中实现,但它可能看起来像这样:

const { data, error, count } = await supabase
    .from('table')
    .select('*')
    .gt('id', 10)
    .count()

编辑 2021 年 7 月 19 日

正如 kiwicopple 所回答的那样,此功能已添加到 Supabase,其形式与我上面的略有不同。查看已接受的答案以了解更多信息。

作为解决方法,您可以编写一个标准的 Postgres 存储过程或函数,returns 计数然后通过 SB 客户端调用它。

https://supabase.io/docs/client/rpc

对于未来的访问者,我们正在与 PostgREST 维护者一起开发此功能:

https://github.com/supabase/postgrest-js/issues/94

现已发布:

const { data, count } = supabase
  .from('countries')
  .select('*', { count: 'exact' })

(我是维护者)