В PostgreSQL как предоставить вручную создать массив оператору «IN»?

#sql #postgresql

#sql #postgresql

Вопрос:

Возможно ли сделать следующее? Если нет, есть ли какой-либо альтернативный способ?

Я пытаюсь сделать что-то вроде этого

 DO
$$
    DECLARE
    user_name_list TEXT[] := '{"aa", "cc"}';

    BEGIN
        DELETE FROM "basic-test" WHERE username IN user_name_list;
    END;
$$;
  

Но получение ошибки

 ERROR:  syntax error at or near "user_name_list"
LINE 7: ...       DELETE FROM "basic-test" WHERE username IN user_name_...
                                                             ^
SQL state: 42601
Character: 126
  

Ответ №1:

Используйте = any( <array> )

 DELETE FROM "basic-test" WHERE username = any(user_name_list);