【PostgreSQL】文字列中に指定した文字が含まれるかのチェック
文字列中に指定した文字が含まれるかのチェック
文字列に、特定の文字列が含まれるかチェックする関数です。
引数
引数1(character varying): 対象の文字列
引数2(character varying): 探す文字列
返り値
true:含む、false:含まれない
コード
CREATE OR REPLACE FUNCTION check_char_exists(
c_target_char character varying,
c_replace_char character varying)
RETURNS boolean AS
$BODY$
declare
BEGIN
--対象の文字列でreplaceして、元の文字列と異なったら含まれると判断する
if c_target_char = replace(c_target_char,c_replace_char,'') then
return false;
else
return true;
end if;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
※ PostgreSQL9.5 , 9.6 , 10 , 11 , 12で動作確認済み 自作関数の実行方法はこちら
実行例
--'abcdef'に'bc'が存在するか
select * From check_char_exists('abcdef','bc'); -- true
--'abcdef'に'xyz'が存在するか
select * From check_char_exists('abcdef','xyz'); -- false
関連記事
・文字の切り取り(Left、Right、Substring)
・文字を左のX文字目から○文字切り取る(Mid関数)【自作関数】
・検索文字を後ろから検索する(LastIndexOf)【自作関数】
・文字列から検索文字の位置を取得する(IndexOf)【自作関数】