如何在Supabase URL中正确使用.in过滤器实现多值匹配查询
Supabase REST接口in过滤器多值匹配失效解决
故障原因
多值参数写法错误:你在in.(TERM1, TERM2)的逗号后加了多余空格,接口会把这个空格识别为第二个匹配值的前导字符,实际匹配条件变成payer = 'TERM1' OR payer = ' TERM2',和库中存储的无前置空格的TERM2不匹配,因此只返回TERM1的结果。
修复方法
- 去掉多值之间的所有多余空格,基础正确写法如下:
https://DATABASE_URL/rest/v1/patients?payer=in.(TERM1,TERM2) - 如果匹配值本身包含特殊字符(逗号、空格、中文等),需要对括号内的参数值做URL编码,示例如下:
https://DATABASE_URL/rest/v1/patients?payer=in.(TERM1%2CTERM2)
注意:Supabase REST能力基于PostgREST构建,in操作符默认以半角逗号作为值分隔符,分隔符前后不要添加无意义空格,否则会被判定为值的一部分。
调用修正后的接口,即可正常返回所有payer字段值为TERM1或TERM2的text类型行数据,符合预期查询效果。
内容的提问来源于stack exchange,提问作者Yash
相关产品推荐
相关产品推荐

