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

Supabase JS客户端JSON字段查询无结果问题求助

问题原因及解决方案

核心问题

Supabase JS客户端的查询构建器对JSON路径的语法解析逻辑和原生PostgreSQL存在差异:原生SQL中用单引号包裹JSON键名的写法,在JS客户端会被误判为字符串边界,导致生成的SQL语句不符合预期,最终查询无结果。

修正后的查询写法

  1. 匹配指定宾客名的查询
    将JSON键名的单引号替换为双引号,确保客户端正确解析JSON路径:
let query = supabase.from("bookings")
                    .select()
                    .eq('guests -> 0 ->> "first_name"', 'Guest');
  1. 检查JSON字段非空的查询
    同样调整路径的引号格式,修正非空判断语句:
let query = supabase.from("bookings")
                    .select()
                    .not('guests -> 0 ->> "first_name"', 'is', null);

替代写法(使用#>>操作符)

也可以用PostgreSQL的#>>操作符,通过数组形式指定JSON路径,这种写法在JS客户端也能正常解析:

let query = supabase.from("bookings")
                    .select()
                    .eq('guests #>> \'{0,first_name}\'', 'Guest');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 08:12:35