postgrest - 在 IN 运算符内有 Like 运算符的可能性
问题描述
希望这是提出这个问题的正确标签。之前在几个论坛上发过,现在还没有答案。
以下是从 supbase 网站复制的查询。
const { data, error } = await supabase
.from('users')
.select('phone_number')
.in('phone_number', LIKE(ARRAY[@contacts]))
我想达到同样的效果,但我需要在 IN 运算符中传递一个带有 Dart 变量的 LIKE 运算符。如下所示,这只是一个示例。
const { data, error } = await supabase
.from('users')
.select('phone_number')
.in('phone_number', LIKE ANY(ARRAY[@contacts]))
dart 中的 contacts 变量是 String 类型的,它有这种格式
'%91960000000’,’%7780000000',’%6720000000',’%4160000000','%7780000000'
解决方案
在这种情况下,您将需要一个函数。
create or replace function get_users(contacts text[]) returns users as $$
select * from users where phone_number like any(contacts);
$$ language sql;
然后您可以将其称为:
const { data, error } = await supabase
.rpc('get_users', {contacts: ['%91960000000', '%6720000000']})
.select('phone_number')
推荐阅读
- java - 如何在 JavaFX 应用程序中从 Excel 中读取数据?
- excel - .End(xlUp).select - 选择下一列而不是行
- python - 改进此循环以使其更可python化的方法
- angular - *ngIf - 如何在模板中进行空检查
- javascript - 角度未将主体传递给 PUT 方法
- python - 无法使用 Selenium 输入文本
- python - 在 SonarQube 的库中 nextNot 函数究竟做了什么?
- java - 如何在 Spark 流中使用 Spark 内部的 Kafka 实现偏移管理?
- highcharts - 带有时间戳和非十进制 y 轴的 highstocks 日内图表
- ios - UIPickerView 有多个组件时如何只显示一个组件?