PostgreSQL中的数组位置比较

时间:2013-10-25 02:48:23

标签: postgresql

我有2个数组,每个数组有2个元素。

例如:数组为array['M','UM']'{0,1}'

我想做以下事情:

update table set value=0 where code='M';
update table set value=1 where code='UM';

1 个答案:

答案 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;