在 IN 运算符中使用 Like 运算符的可能性
possibility of having a Like operator inside of the IN operator
希望这是问这个问题的正确标签。之前在几个论坛发过,还没得到答案
以下是从 supabase 网站复制的查询。
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]))
contacts变量在dart中是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')
希望这是问这个问题的正确标签。之前在几个论坛发过,还没得到答案
以下是从 supabase 网站复制的查询。
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]))
contacts变量在dart中是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')