更新时间:2024-11-11 GMT+08:00

操作符

GaussDB数据库兼容绝大多数MySQL的操作符,但存在部分差异。如未列出,操作符行为默认为GaussDB原生行为。

表1 操作符

序号

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。