【问题标题】:possibility of having a Like operator inside of the IN operator在 IN 运算符内部有 Like 运算符的可能性
【发布时间】:2021-10-24 03:24:10
【问题描述】:

希望这是提出这个问题的正确标签。之前在几个论坛上发过,还没得到答案。

以下是从 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'

【问题讨论】:

    标签: postgrest supabase


    【解决方案1】:

    在这种情况下,您需要一个函数。

    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')
    

    【讨论】:

    • 这是在 GIthub 上用相同的方法回答的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 2012-07-11
    • 2018-12-02
    • 2014-06-10
    • 2012-03-21
    相关资源
    最近更新 更多