У меня есть таблица с VARCHAR
в качестве PRIMARY_KEY
, поэтому мои идентификаторы генерируются случайным образом и выглядят как WUoN5VemT
или MQvOQidTi
.Я просто хочу написать функцию, которая ожидает массив в качестве входных данных и возвращает все элементы, которые содержатся в массиве.Я думаю, что следующий полукод лучше покажет:
CREATE OR REPLACE FUNCTION public."getInfo" (
"myIDs" varchar []
)
RETURNS varchar AS
$body$
BEGIN
SELECT * FROM "myTable" WHERE "id" IN($1) ORDER BY "idDate" DESC;
-- RETURN etc....
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
Но проблема в том, что массив может содержать 50 или более записей (возможно также 100), поэтому мне нужно сделать это каккак можно быстрее.Следующая проблема заключается в том, что приведенный выше код не работает.Я часто находил решение для нескольких значений с помощью IN
-ключа, но есть ли способ объединить массивы и IN
-клаза?
Есть ли шанс реализовать это с помощью функции?