我有2个数组,每个数组有2个元素。
例如:数组为array['M','UM']
和'{0,1}'
。
我想做以下事情:
update table set value=0 where code='M';
update table set value=1 where code='UM';
答案 0 :(得分:2)
我还没有测试过。这个想法是这样的:
CREATE OR REPLACE FUNCTION array_translate(varchar[], int[])
NULL
AS
$$
DECLARE
arrStr ALIAS FOR $1;
arrInt ALIAS FOR $2;
BEGIN
FOR I IN array_lower(arrStr, 1)..array_upper(arrStr, 1) LOOP
update table set value=arrInt[I] where code=arrStr[I];
END LOOP;
RETURN NULL;
END;
$$
LANGUAGE plpgsql
STABLE
RETURNS NULL ON NULL INPUT;