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

操作符

GaussDB数据库兼容绝大多数MySQL的操作符,但存在部分差异。除特别说明外,MySQL兼容性MySQL模式中的操作符行为默认为GaussDB原生行为。

表1 操作符

MySQL数据库

GaussDB数据库

差异

安全等于(<=>)

支持

-

[NOT] REGEXP

支持,存在差异

  • 当开启b_format_dev_version='s2'时,模式字符串pattern 中有'\\a', '\\d', '\\e', '\\n', '\\Z', '\\u'等转义字符时,匹配源字符串'\a', '\d', '\e', '\n', '\Z', '\u'时,GaussDB行为与MySQL 5.7不一致,与MySQL 8.0一致。
  • 当开启b_format_dev_version='s2'时,GaussDB '\b' 可以与'\\b'匹配,MySQL匹配失败。
  • 模式字符串pat非法入参,只存在右单括号)’时,GaussDB报错MySQL 5.7会报错MySQL 8.0不会报错
  • 在de|abc匹配序列de或abc的匹配规则,当|左右存在空值时,GaussDB不会报错,MySQL 5.7会报错,MySQL 8.0不会报错
  • 制表符[\t]正则匹配字符类[:blank:],GaussDB可匹配,MySQL 5.7不能匹配,MySQL 8.0可匹配
  • 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类型,因此无法匹配。

[NOT] RLIKE

支持,存在差异

同[NOT] REGEXP。

相关文档