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,无论判断时的顺序或重复,使用时要注意。