字符操作符
相比于原始的Vastbase,在MySQL兼容模式下新增如下字符操作符(原Vastbase的字符处理函数和操作符请参考字符处理函数和操作符):
regexp
描述: 正则表达式的模式匹配操作符。
格式:
source_string regexp pattern
source_string为源字符串,pattern为正则表达式匹配模式。
返回值类型: integer(0或1)
示例:
SELECT 'str' regexp '[ac]' AS RESULT;
返回结果如下:
RESULT
--------
0
(1 row)
not regexp
描述: regexp的结果取反。
格式:
source_string not regexp pattern
source_string为源字符串,pattern为正则表达式匹配模式。
返回值类型: integer(0或1)
示例:
SELECT 'str' not regexp '[ac]' AS RESULT;
返回结果如下:
RESULT
--------
1
(1 row)
rlike
描述: 等价于regexp。
格式:
source_string rlike pattern
source_string为源字符串,pattern为正则表达式匹配模式。
返回值类型: integer(0或1)
示例:
SELECT 'str' rlike '[ac]' AS RESULT;
返回结果如下:
RESULT
--------
0
(1 row)
like/not like
描述: 判断字符串能否匹配上LIKE后的模式字符串。
Vastbase的原like为大小写敏感匹配,现将其改为当GUC参数[b_compatibility_mode]()为TRUE时大小写不敏感匹配,当b_compatibility_mode为FALSE时大小写敏感匹配。若字符串与提供的模式匹配,则like表达式返回真(not like返回假)。
注意事项: 对于定长字符串char,若插入表的字符串长度小于指定长度则会在字符串末尾自动填充空格,该操作符处理定长字符串类型时忽略末尾多余空格。
返回值类型: 布尔型
示例:
1、设置GUC参数b_compatibility_mode并查询。
set b_compatibility_mode = TRUE;
show b_compatibility_mode;
返回结果为:
b_compatibility_mode
----------------------
on
(1 row)
2、调用like操作符。
SELECT 'a' like 'A' as result;
SELECT 'abc' like 'a' as result;
SELECT 'abc' like 'A%' as result;
SELECT true like true as result;
返回结果为:
result
--------
t
(1 row)
result
--------
f
(1 row)
result
--------
t
(1 row)
result
--------
t
(1 row)
like binary/not like binary
描述: 判断字符串能否匹配上LIKE BINARY后的模式字符串,like binary采用大小写敏感模式匹配,若模式匹配则返回真(not like binary返回假),不匹配则返回假(not like binary返回真)。
返回值类型: 布尔型
示例:
SELECT 'a' like binary 'A' as result;
SELECT 'a' like binary 'a' as result;
SELECT 'abc' like binary 'a' as result;
SELECT 'abc' like binary 'a%' as result;
返回结果为:
result
--------
f
(1 row)
result
--------
t
(1 row)
result
--------
f
(1 row)
result
--------
t
(1 row)