You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Supabase提取表数据输出JSON问题:函数仅返回单行

解决Supabase函数返回单行JSON的问题

你的函数只返回单行数据,核心原因是用INTO datas将查询结果存入单个record变量,这种变量只能存储一行数据,自然只会返回第一行的结果。

以下是两种修正方案,同时补上你原本遗漏的日期过滤逻辑(传入的start_date和end_date参数之前未被使用):

方案1:简化为SQL函数(推荐)

SQL函数比PL/pgSQL更简洁高效,适合这类数据查询场景:

CREATE OR REPLACE FUNCTION get_dashboard_company_registration(start_date date, end_date date)
RETURNS JSON AS $$
SELECT json_build_object(
    'data', json_agg(
        json_build_object(
            'id', p.id,
            'plan_name', p.plan_name,
            'created_at', pr.created_at,
            'count', count(p.id)
        )
    )
)
FROM profiles as pr
JOIN user_subscription_plans as usp
    ON usp.user_id = pr.id
JOIN plans as p
    ON usp.plans_id = p.id
WHERE pr.created_at BETWEEN start_date AND end_date + INTERVAL '1 day'
GROUP BY p.id, p.plan_name, pr.created_at
ORDER BY pr.created_at;
$$ LANGUAGE sql security definer;

方案2:修正PL/pgSQL版本

如果坚持使用PL/pgSQL,只需将单个record变量替换为聚合后的JSON对象:

CREATE OR REPLACE FUNCTION get_dashboard_company_registration(start_date date, end_date date)
RETURNS JSON AS $$
DECLARE
    jsondata JSON;
BEGIN
    SELECT json_build_object(
        'data', json_agg(
            json_build_object(
                'id', p.id,
                'plan_name', p.plan_name,
                'created_at', pr.created_at,
                'count', count(p.id)
            )
        )
    ) INTO jsondata
    FROM profiles as pr
    JOIN user_subscription_plans as usp
        ON usp.user_id = pr.id
    JOIN plans as p
        ON usp.plans_id = p.id
    WHERE pr.created_at BETWEEN start_date AND end_date + INTERVAL '1 day'
    GROUP BY p.id, p.plan_name, pr.created_at
    ORDER BY pr.created_at;

    RETURN jsondata;
END;
$$ LANGUAGE plpgsql security definer;

关键说明

  • 使用json_agg()函数将查询返回的所有行聚合为一个JSON数组,确保所有数据都被包含在返回结果中
  • 添加WHERE子句过滤created_at在指定日期范围内的数据(end_date + INTERVAL '1 day'是为了包含end_date当天的所有时间点)
  • 返回的结构为{"data": [{}, {}, ...]}格式,符合FlutterFlow后续处理的JSON结构需求

内容的提问来源于stack exchange,提问作者goaty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 13:22:08