GaussDB数据库兼容绝大多数MySQL的操作符,但存在部分差异。如未列出,操作符行为默认为GaussDB原生行为。
序号 |
MySQL数据库 |
GaussDB数据库 |
差异 |
1 |
安全等于(<=>) |
支持 |
- |
2 |
[NOT] REGEXP |
支持 |
- 当开启b_format_dev_version='s2'时,模式字符串pattern 中有'\\a', '\\d', '\\e', '\\n', '\\Z', '\\u'等转义字符时,匹配源字符串'\a', '\d', '\e', '\n', '\Z', '\u'时,GaussDB行为与MySQL5.7不一致。MySQL5.7存在bug,MySQL后续版本已经修复与GaussDB一致。
- 当开启b_format_dev_version='s2'时,GaussDB '\b' 可以与'\\b'匹配,MySQL匹配失败。
- 模式字符串pat非法入参,只存在右单括号’)’时,GaussDB数据库报错。MySQL存在bug,后续版本已经修复此问题。
- 在de|abc 匹配序列de或abc的匹配规则,当|左右存在空值时,MySQL存在bug,会报错,后续版本已经修复此问题。
- 空白字符[\t]正则匹配字符类[:blank:],GaussDB可匹配,兼容MySQL\t不能匹配[:blank:],MySQL存在bug,后续版本已经修复此问题。
- GaussDB支持非贪婪模式匹配,即尽可能少的匹配字符,在部分特殊字符后加‘?’问号字符,例如:“??, *?, +?, {n}?, {n,}?, {n,m}?”。MySQL 5.7版本不支持非贪婪模式匹配,并报错:Got error 'repetition-operator operand invalid' from regexp。MySQL 8.0版本已经支持。
- 在binary字符集下,text类型、blob类型均会转换成bytea类型,由于REGEXP操作符不支持bytea类型,因此无法匹配。
|
3 |
[NOT] RLIKE |
支持 |
同[NOT] REGEXP。 |