【PostgreSQL】配列に特定の文字列が含まれるかをチェックする

PostgreSQL自作関数

配列に特定の文字列が含まれるかをチェックする

配列に特定の文字列が含まれるかをチェックします。

 

引数

引数1(character varying[]):チェックする配列

引数2(character varying):探す文字列

 

返り値

True:含む、False:含まない

 

コード

CREATE OR REPLACE FUNCTION check_array_exists(
    character varying[],
    character varying)
  RETURNS boolean AS
$BODY$
declare
 
	a_array	        alias for $1; 	--引数1:チェックする配列
	c_check_char	alias for $2; 	--引数2:探す文字列
	
begin
  
	for temp_count in 1..array_length(a_array,1)
	loop
		if a_array[temp_count] = c_check_char then
			return true;
		end if;
 
	end loop;
 
	return false;
 
end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION check_array_exists(character varying[], character varying)
  OWNER TO postgres;

 

実行例

select * from check_array_exists(array['a','b','c'],'b');
--True

 

他にもこんな関数があります(配列操作の関数)

2つの配列を結合する

配列が全て空かチェックする