
# 字符串函数
表1字符串函数列表 
| MySQL数据库           | GaussDB数据库 | 差异                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| ASCII()            | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| BIT_LENGTH()       | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| CHAR_LENGTH()      | 支持，存在差异    | GaussDB此函数如果数据库字符集是SQL_ASCII，CHAR_LENGTH()会返回字节数而非字符数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| CHARACTER_LENGTH() | 支持，存在差异    | GaussDB此函数如果数据库字符集是SQL_ASCII，CHARACTER_LENGTH()会返回字节数而非字符数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| CONCAT()           | 支持，存在差异    | 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| CONCAT_WS()        | 支持，存在差异    | 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| HEX()              | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| LENGTH()           | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| LPAD()             | 支持，存在差异    | - MySQL默认最大填充长度为1398101，GaussDB默认最大长度为1048576。在不同字符集下，最大填充长度会有差异，例如字符集为GBK时，GaussDB默认最大长度为2097152。  - 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。  - 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。              |
| REPEAT()           | 支持，存在差异    | 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| REPLACE()          | 支持，存在差异    | 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| RPAD()             | 支持，存在差异    | - MySQL默认最大填充长度为1398101，GaussDB默认最大长度为1048576。在不同字符集下，最大填充长度会有差异，例如字符集为GBK时，GaussDB默认最大长度为2097152。  - 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。  - 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。   |
| SPACE()            | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| STRCMP()           | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| FIND_IN_SET()      | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| LCASE()            | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| LEFT()             | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| LOWER()            | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| LTRIM()            | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| REVERSE()          | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| RIGHT()            | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| RTRIM()            | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| SUBSTR()           | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| SUBSTRING()        | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| SUBSTRING_INDEX()  | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| TRIM()             | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| UCASE()            | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| UPPER()            | 支持，存在差异    | 当GaussDB使用的字符编码是SQL_ASCII时，服务器会根据ASCII标准对字节值0\~127进行解释，而字节值128\~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据，数据库将无法帮助用户转换或者校验非ASCII字符，从而与MySQL的行为产生较大差异。 当MySQL返回值类型为二进制字符串类型（BINARY、VARBINARY、BLOB等）时，GaussDB对应的返回值类型为LONGBLOB；当MySQL返回值类型为非二进制字符串类型（CHAR、VARCHAR、TEXT等）时，GaussDB对应的返回值类型为TEXT。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| UNHEX()            | 支持，存在差异    | MySQL的返回值类型为BINARY、VARBINARY、BLOB、MEDIUMBLOB或LONGBLOB；GaussDB返回值类型固定为LONGBLOB。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| FIELD()            | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| FORMAT()           | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
