PostgreSQL确定字符串是否包含目标字符串的几种方
  • 作者:admin
  • 发表时间:2021-04-24 07:53
  • 来源:未知

PostgreSQL判断字符串是否包含的几种方法;

方法1:位置(字符串中的子字符串):

position(string中的子字符串)函数:参数1:目标字符串,参数2:原始字符串。如果包含目标字符串,将返回目标字符串出现一次的位置。是否包含目标字符串可以根据返回值是否大于0来判断。

选择位置(' abcd '中的' aa ');

位置

-

0

选择位置(' abcd '中的' ab ');

位置

-

一个

选择位置(' abcdab '中的' ab ');

位置

-

一个

方法2: strpos(字符串,子字符串)

Strpos(string,substring)函数:参数1:原字符串,目标字符串,声明子字符串的位置,其函数与位置函数一致。

选择位置(' abcd ',' aa ');

位置

-

0

选择位置(' abcd ',' ab ');

位置

-

一个

选择位置(' abcdab ',' ab ');

位置

-

一个

方法3:使用正则表达式

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

选择' abcd' ~ 'aa '作为结果;

结果

-

f

选择' abcd' ~ 'ab '作为结果;

结果

-

t

选择' abcdab' ~ 'ab '作为结果;

结果

-

t

模式4:使用数组的@运算符(无法准确确定是否包含它)

选择regexp_split_to_array('abcd ',' ')@ array['b ',' e']作为结果;

结果

-

f

选择regexp_split_to_array('abcd ',' ')@ array['a ',' b']作为结果;

结果

-

t

请注意以下示例:

选择regexp_split_to_array('abcd ',' ')@ array['a ',' a']作为结果;

结果

-

t

选择regexp_split_to_array('abcd ',' ')@ array['a ',' c']作为结果;

结果

-

t

选择regexp_split_to_array('abcd ',' ')@ array['a ',' c ',' a ',' c']作为结果;

结果

-

t

可以看出,唐山网络公司只要包含数组的包含运算符就返回true,无论判断时的顺序或重复,使用时要注意。