字符串函数
序号 |
MySQL数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
ASCII() |
支持。 |
- |
2 |
BIT_LENGTH() |
支持。 |
- |
3 |
CHAR_LENGTH() |
支持,有差异。 |
GaussDB此函数如果数据库字符集是SQL_ASCII,CHAR_LENGTH()会返回字节数而非字符数。 |
4 |
CHARACTER_LENGTH() |
支持,有差异。 |
GaussDB此函数如果数据库字符集是SQL_ASCII,CHARACTER_LENGTH()会返回字节数而非字符数。 |
5 |
CONCAT() |
支持。 |
当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为BLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 |
6 |
CONCAT_WS() |
支持。 |
当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为BLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 |
7 |
HEX() |
支持。 |
- |
8 |
LENGTH() |
支持。 |
- |
9 |
LPAD() |
支持,有差异。 |
|
10 |
MD5() |
支持,有差异。 |
当BINARY类型插入字符串长度小于目标长度时,GaussDB填充符和MySQL不同;因此导致入参为BINARY类型时,函数结果和MySQL不一致。 |
11 |
RANDOM_BYTES() |
支持。 |
GaussDB与MySQL都使用OPENSSL生成随机字符串。GaussDB使用OPENSSL3.x.x生成随机字符串,与使用OPENSSL1.x.x版本的MySQL相比性能可能存在劣化。 |
12 |
REPEAT() |
支持。 |
当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为BLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 |
13 |
REPLACE() |
支持。 |
|
14 |
RPAD() |
支持,有差异。 |
|
15 |
SHA()/SHA1() |
支持。 |
- |
16 |
SHA2() |
支持。 |
- |
17 |
SPACE() |
支持。 |
- |
18 |
STRCMP() |
支持,有差异。 |
如果数据库字符集是SQL_ASCII,可能产生未预期的结果。 |
19 |
FIND_IN_SET() |
支持,有差异。 |
当指定数据库使用的字符编码是SQL_ASCII时,服务器把字节值0~127根据ASCII标准解释,而字节值128~255则当作无法解析的字符;如果该函数的输入输出包含了任何非ASCII数据,数据库将无法帮助你转换或者校验非ASCII字符。 当MySQL返回值类型为二进制字符串类型(BINARY、VARBINARY、BLOB等)时,GaussDB对应的返回值类型为BLOB;当MySQL返回值类型为非二进制字符串类型(CHAR、VARCHAR、TEXT等)时,GaussDB对应的返回值类型为TEXT。 SUBSTRING 函数在第一个入参为嵌套场景下与MySQL存在差异:
SUBSTRING_INDEX函数存在差异:
|
20 |
LCASE() |
||
21 |
LEFT() |
||
22 |
LOWER() |
||
23 |
LTRIM() |
||
24 |
REVERSE() |
||
25 |
RIGHT() |
||
26 |
RTRIM() |
||
27 |
SUBSTR() |
||
28 |
SUBSTRING() |
||
29 |
SUBSTRING_INDEX() |
||
30 |
TRIM() |
||
31 |
UCASE() |
||
32 |
UPPER() |
||
33 |
UNHEX() |
支持。 |
MySQL的返回值类型为BINARY、VARBINARY、BLOB、MEDIUMBLOB或LONGBLOB;GaussDB返回值类型固定为LONGBLOB。 |
34 |
FIELD() |
支持。 |
- |
35 |
COMPRESS() |
支持,有差异。 |
MySQL返回类型为VARBINARY、BLOB或LONGBLOB;GaussDB返回二进制字符串类型LONGBLOB。 |
36 |
UNCOMPRESS() |
支持。 |
- |
37 |
UNCOMPRESS_LENGTH() |
支持。 |
- |
38 |
EXPORT_SET() |
支持。 |
- |
39 |
POSITION() |
支持。 |
- |
40 |
LOCATE() |
支持。 |
- |
41 |
CHAR() |
支持,有差异。 |
|
42 |
ELT() |
支持,有差异。 |
MySQL中ELT函数入参个数无限制,GaussDB函数的入参不超过8192个。 |
43 |
FORMAT() |
支持。 |
- |
44 |
BIN() |
支持。 |
- |
45 |
MAKE_SET() |
支持。 |
MySQL 5.7版本,当MAKE_SET函数选中的第一个参数为整型、浮点型或定点型且返回结果中存在非ASCII字符,显示结果可能为乱码;GaussDB显示结果正常,和MySQL 8.0版本保持一致。 |
46 |
TO_BASE64() |
支持。 |
- |
47 |
FROM_BASE64() |
支持。 |
- |
48 |
ORD() |
支持。 |
- |
49 |
MID() |
支持。 |
- |
50 |
QUOTE() |
支持,有差异。 |
|
51 |
INSERT() |
支持。 |
- |
52 |
INSTR() |
支持。 |
- |