您现在的位置是:首页 > 博客网站制作 > 心得笔记心得笔记

PostgreSQL判断字符串是否包含目标字符串的多种方法

杨青青2022-02-20【心得笔记】人已围观

简介PostgreSQL判断字符串包含的几种方法:方式一:position(substringinstring):position(substringinstring)函数:参数一:目标字符串,参数二原字符串,如果包含目标字符串,会返回目标字

PostgreSQL判断字符串包含的几种方法:

方式一:position(substringinstring):

position(substringinstring)函数:参数一:目标字符串,参数二原字符串,如果包含目标字符串,会返回目标字符串笫一次出现的位置,可以根据返回值是否大于0来判断是否包含目标字符串

selectposition('aa'in'abcd');
position
----------
0
selectposition('ab'in'abcd');
position
----------
1
selectposition('ab'in'abcdab');
position
----------
1

方式二:strpos(string,substring)

strpos(string,substring)函数:参数一:原字符串,目标字符串,声明子串的位置,作用与position函数一致。

selectposition('abcd','aa');
position
----------
0

selectposition('abcd','ab');
position
----------
1

selectposition('abcdab','ab');
position
----------
1

方式三:使用正则表达式

如果包含目标字符串返回t,不包含返回f

select'abcd'~'aa'asresult;
result
------
f

select'abcd'~'ab'asresult;
result
------
t

select'abcdab'~'ab'asresult;
result
------
t

方式四:使用数组的@>操作符(不能准确判断是否包含)

selectregexp_split_to_array('abcd','')@>array['b','e']asresult;
result
------
f

selectregexp_split_to_array('abcd','')@>array['a','b']asresult;
result
------
t

注意下面这些例子:

selectregexp_split_to_array('abcd','')@>array['a','a']asresult;
result
----------
t

selectregexp_split_to_array('abcd','')@>array['a','c']asresult;
result
----------
t

selectregexp_split_to_array('abcd','')@>array['a','c','a','c']asresult;
result
----------
t

可以看出,数组的包含操作符判断的时候不管顺序、重复,只要包含了就返回true,在真正使用的时候注意。

Tags:

很赞哦! ()

文章评论

站点信息

  • 建站时间:2011年01月12日
  • 网站程序:帝国CMS7.5
  • 主题模板《今夕何夕》
  • 文章统计625篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们