有效处理计算最大行数

问题描述 投票:0回答:1

我正在努力实现一个 API 端点,以便在我的应用程序中使用 Drizzle ORM 检索联系人。端点支持可选参数,用于限制结果数量 (

limit
)、跳过一定数量的条目 (
offset
) 以及按联系人姓名搜索。我需要返回元数据,包括最大行数 (
maxRows
)。处理这个问题最有效的方法是什么?

以下是该场景的细分:

  • API参数:

    • limit:指定一次 API 调用返回的最大结果数。
    • offset:确定开始返回记录之前要跳过的结果数。
    • search:可选参数,用于按姓名搜索联系人。
  • 目标:

    • 根据提供的参数(限制、偏移、搜索)返回联系人。
    • 在响应中包含元数据,指示与搜索条件匹配的最大行数 (maxRows)。
  • 技术栈:

    • 使用 Drizzle ORM 与 Postgresql 进行数据库操作。

我应该进行两次 API 调用(一个用于获取结果,另一个用于计算 maxRows),还是有一种更简单、更有效的方法来在单个 API 调用中处理此问题?

postgresql drizzle
1个回答
0
投票

您可以“count(*) over()”:

select count(*) over() as n, p.* from pg_class p order by relname offset 50 rows fetch next 10 rows only;

https://dbfiddle.uk/kmjqq7u4

© www.soinside.com 2019 - 2024. All rights reserved.