# 字符串函数
表1字符串函数列表 
| 函数名                   | 与MySQL的差异                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|
| ASCII()             | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| BIT_LENGTH()         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| CHAR()            | 当返回值为非法字符时，GaussDB会直接返回非法字符，MySQL在宽松模式下返回截断后的字段串，严格模式下返回NULL。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 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()           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
