更新时间:2024-12-06 GMT+08:00

操作符

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

表1 操作符

MySQL数据库

GaussDB数据库

差异

安全等于(<=>)

支持

-

[NOT] REGEXP

支持,存在差异

  • 当设置GUC参数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一致。
  • 当设置GUC参数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。