Supabase订阅多条件过滤问题:如何实现AND逻辑筛选单行列?
Supabase JS库实时订阅多条件AND过滤的正确实现
正确写法
直接用&连接多个过滤条件即可,这符合PostgREST的查询参数规则,也是Supabase实时订阅filter参数的标准用法:
const i = 123; // 示例id值 const x = 'targetValue'; // 示例somecolumn值 supabase .channel('any') .on('postgres_changes', { event: '*', schema: '*', table:'SomeTable', filter: `id=eq.${i}&somecolumn=eq.${x}` }, payload => { console.log('符合条件的行变更:', payload) }) .subscribe()
两种尝试写法的问题说明
- 写法1:
('id=eq.'+i,'somecolumn=eq.'+x)是JavaScript的逗号运算符表达式,它会忽略第一个值,仅返回最后一个表达式的结果,相当于只设置了somecolumn=eq.+x这一个过滤条件,无法实现多条件过滤。 - 写法2:
supabase.and()是Supabase查询构建器(比如supabase.from().select()这类查询场景)中用来组合条件的方法,不能直接传递给实时订阅的filter参数——filter仅接受符合PostgREST格式的字符串。
内容的提问来源于stack exchange,提问作者A Moore
相关产品推荐
相关产品推荐

