AnalyticDB for MySQL支持以下可变长二进制函数。

  • LENGTH:以字节为单位返回参数的长度。
  • CHAR_LENGTH:以字符为单位返回字符串的长度。
  • ORD:如果字符串最左边的字符是多字节字符,则返回该字符的代码。
  • HEX:将字符串或数字转换为十六进制形式,并返回结果。
  • UNHEX:将参数中的每对字符转换为十六进制形式,再将其转换为数字表示的字节,最后以二进制字符串形式返回结果。
  • MD5:计算参数MD5的hash值。
  • SHA1:计算字符串的SHA-1校验和。
  • CRC32
  • LOWER:返回参数的小写形式。
  • UPPER:返回参数的大写形式。
  • UPPER:返回参数的大写形式。
  • LTRIM:移除字符串左边的空白字符。
  • RTRIM:移除字符串右边的空白字符。
  • TRIM:移除字符串左右两边的空白字符
  • COMPRESS:压缩一个字符串并将结果作为二进制字符串返回。
  • UNCOMPRESS:解压缩由COMPRESS()函数压缩的字符串。
  • UNCOMPRESSED_LENGTH:在压缩之前返回一个字符串的长度。
  • ENCRYPT:对字符串进行加密。
  • AES_ENCRYPT:使用AES算法进行数据加密。
  • AES_DECRYPT
  • SUBSTR:返回指定子字符串。
  • LEFT:返回字符串最左边的`y`个字符。
  • RIGHT
  • REPEAT:返回重复指定次数的字符串。
  • REVERSE:反转字符串中的字符。
  • SHA2:计算SHA-2校验和。
  • LPAD:左拼接字符串。
  • RPAD:右拼接字符串。
  • TO_BASE64
  • FROM_BASE64:解码BASE64编码的字符串并返回结果。

LENGTH

length(varbinary x)        
  • 命令说明:以字节为单位返回参数x的长度。
  • 返回值类型:LONG
  • 示例:
        select length(CAST('abc' AS VARBINARY));
        +----------------------------------+
        | length(CAST('abc' AS varbinary)) |
        +----------------------------------+
        |                                3 |                

CHAR_LENGTH

char_length(varbinary x)            
  • 命令说明:以字符为单位返回字符串x的长度。
  • 返回值类型:LONG
  • 示例:
        select char_length(CAST('abc' AS VARBINARY));
        +---------------------------------------+
        | char_length(CAST('abc' AS varbinary)) |
        +---------------------------------------+
        |                                     3 |                    

ORD

ord(varbinary x)            
  • 命令说明:如果字符串x最左边的字符是多字节字符,则返回该字符的代码。
  • 返回值类型:LONG
  • 示例:
        select ord(CAST('中国' AS VARBINARY));
        +----------------------------------+
        | ord(CAST('中国' AS varbinary))   |
        +----------------------------------+
        |                              228 |                    

HEX

hex(varbinary x)            
  • 命令说明:将字符串x或数字转换为十六进制格式的字符串。
  • 返回值类型:VARCHAR
  • 示例:
        select hex(CAST('中国' AS VARBINARY));
        +----------------------------------+
        | hex(CAST('中国' AS varbinary))   |
        +----------------------------------+
        | E4B8ADE59BBD                     |                    

UNHEX

unhex(varbinary x)            
  • 命令说明:将参数x中的每对字符解释为十六进制数,并将其转换为数字表示的字节,以二进制字符串将其返回。
  • 返回值类型:VARBINARY
  • 示例:
        select unhex(CAST('中国' AS VARBINARY));
        +------------------------------------+
        | unhex(CAST('中国' AS varbinary))   |
        +------------------------------------+
        | NULL                               |                    

MD5

md5(varbinary x)            
  • 命令说明:返回参数xMD5的hash值。
  • 返回值类型:VARCHAR
  • 示例:
        select md5(CAST('中国' AS VARBINARY));
        +----------------------------------+
        | md5(CAST('中国' AS varbinary))   |
        +----------------------------------+
        | c13dceabcb143acd6c9298265d618a9f |                    

SHA1

sha1(varbinary x)            
  • 命令说明:计算字符串x的SHA-1校验和。
  • 返回值类型:VARCHAR
  • 示例:
        select sha1(CAST('中国' AS VARBINARY));
        +------------------------------------------+
        | sha1(CAST('中国' AS varbinary))          |
        +------------------------------------------+
        | 101806f57c322fb403a9788c4c24b79650d02e77 |                    

CRC32

crc32(varbinary x)            
  • 命令说明:返回参数x的循环冗余码。
  • 返回值类型:LONG
  • 示例:
        select crc32(CAST('中国' AS VARBINARY));
        +------------------------------------+
        | crc32(CAST('中国' AS varbinary))   |
        +------------------------------------+
        |                          737014929 |                    

LOWER

lower(varbinary x)            
  • 命令说明:返回参数x的小写形式。
  • 返回值类型:VARBINARY
  • 示例:
        select lower(CAST('ABC' AS VARBINARY));
        +---------------------------------+
        | lower(CAST('ABC' AS varbinary)) |
        +---------------------------------+
        | abc                             |                    

UPPER

upper(varbinary x)           
  • 命令说明:返回参数x的大写形式。
  • 返回值类型:VARBINARY
  • 示例:
        select upper(CAST('abc' AS VARBINARY));
        +---------------------------------+
        | upper(CAST('abc' AS varbinary)) |
        +---------------------------------+
        | ABC                             |                    

LTRIM

ltrim(varbinary x)            
  • 命令说明:移除字符串x左边的空白字符。
  • 返回值类型:VARBINARY
  • 示例:
        select ltrim(CAST('  中国  ' AS VARBINARY));
        +----------------------------------------+
        | ltrim(CAST('  中国  ' AS varbinary))   |
        +----------------------------------------+
        | 中国                                   |                    

RTRIM

rtrim(varbinary x)            
  • 命令说明:移除字符串x右边的空白字符。
  • 返回值类型:VARBINARY
  • 示例:
        select rtrim(CAST('  中国  ' AS VARBINARY));
        +----------------------------------------+
        | rtrim(CAST('  中国  ' AS varbinary))   |
        +----------------------------------------+
        |   中国                                 |                    

TRIM

trim(varbinary x)            
  • 命令说明:移除字符串x左右两边的空白字符。
  • 返回值类型:VARBINARY
  • 示例:
    select trim(CAST('  中国  ' AS VARBINARY));
        +---------------------------------------+
        | trim(CAST('  中国  ' AS varbinary))   |
        +---------------------------------------+
        | 中国                                  |                    

COMPRESS

compress(varbinary x)            
  • 命令说明:压缩字符串x并将结果作为二进制字符串返回。
  • 返回值类型:VARBINARY
  • 示例:
        select hex(compress(CAST('中国' AS VARBINARY)));
        +--------------------------------------------+
        | hex(compress(CAST('中国' AS varbinary)))   |
        +--------------------------------------------+
        | 06000000789C7BB263EDD3D97B01104C0487       |                    

UNCOMPRESS

uncompress(varbinary x)            
  • 命令说明:解压缩x由COMPRESS()函数压缩的字符串。
  • 返回值类型:VARBINARY
  • 示例:
        select uncompress(compress(CAST('中国' AS VARBINARY)));
        +---------------------------------------------------+
        | uncompress(compress(CAST('中国' AS varbinary)))   |
        +---------------------------------------------------+
        | 中国                                              |                    

UNCOMPRESSED_LENGTH

uncompressed_length(varbinary x)            
  • 命令说明:在压缩之前返回字符串x的长度。
  • 返回值类型:LONG
  • 示例:
        select uncompressed_length(compress(CAST('中国' AS VARBINARY)));
        +------------------------------------------------------------+
        | uncompressed_length(compress(CAST('中国' AS varbinary)))   |
        +------------------------------------------------------------+
        |                                                          6 |                    

ENCRYPT

encrypt(varbinary x, varchar y)            
  • 命令说明:对参数x进行加密,y为Salt值。
  • 返回值类型:VARBINARY
  • 示例:
        select encrypt('abdABC123','key');
        +-----------------------------+
        | encrypt('abdABC123', 'key') |
        +-----------------------------+
        | kezazmcIo.aCw               |                    

AES_ENCRYPT

aes_encrypt(varbinary x, varchar y)           
  • 命令说明:使用AES算法加密xy为密钥。
  • 返回值类型:VARBINARY
  • 示例:
        select HEX(aes_encrypt(CAST('中国' AS VARBINARY), '0123'));
        +-------------------------------------------------------+
        | HEX(aes_encrypt(CAST('中国' AS VARBINARY), '0123'))   |
        +-------------------------------------------------------+
        | DFB166F0A03113AA848C0CE545D58757                      |                    

AES_DECRYPT

aes_decrypt(varbinary x, varchar y)            
  • 命令说明:使用AES算法解密xy为密钥。
  • 返回值类型:VARBINARY
  • 示例:
        select aes_decrypt(aes_encrypt(CAST('中国' AS VARBINARY), '0123'),'0123');
        +-----------------------------------------------------------------------+
        | aes_decrypt(aes_encrypt(CAST('中国' AS varbinary), '0123'), '0123')   |
        +-----------------------------------------------------------------------+
        | 中国                                                                  |                    

SUBSTR

substr(varbinary x, bigint y, double z)
substr(varbinary x, double y, double z)
substr(varbinary x, bigint y, bigint z)
substr(varbinary x, double y, bigint z)
substr(varbinary x, double y)
substr(varbinary x, bigint y)           
  • 命令说明:返回指定子字符串。
  • 返回值类型:VARBINARY
  • 示例:
        select HEX(substr(CAST('中国' AS VARBINARY), 2));
        +---------------------------------------------+
        | HEX(substr(CAST('中国' AS VARBINARY), 2))   |
        +---------------------------------------------+
        | B8ADE59BBD                                  |
        +---------------------------------------------+                   
        +----------------------------------------------------+
        | HEX(substr(CAST('中国' AS VARBINARY), 2.7, 1.7))   |
        +----------------------------------------------------+
        | ADE5                                               |
        +----------------------------------------------------+                    

LEFT

left(varbinary x, bigint y)
left(varbinary x, double y)            
  • 命令说明:返回字符串x最左边的y个字符。
  • 返回值类型:VARBINARY
  • 示例:
        select left(CAST('中国' AS VARBINARY),1000);
        +-----------------------------------------+
        | LEFT(CAST('中国' AS VARBINARY), 1000)   |
        +-----------------------------------------+
        | 中国                                    |                    

RIGHT

right(varbinary x, bigint y)
right(varbinary x, double y)            
  • 命令说明:返回字符串x最右边的y个字符。
  • 返回值类型:VARBINARY
  • 示例:
        select HEX(right(CAST('中国' AS VARBINARY),1));
        +--------------------------------------------+
        | HEX(RIGHT(CAST('中国' AS VARBINARY), 1))   |
        +--------------------------------------------+
        | BD                                         |                    

REPEAT

repeat(varbinary x, double y)
repeat(varbinary x, bigint y)            
  • 命令说明:返回重复指定次数y的字符串x
  • 返回值类型:VARBINARY
  • 示例:
        select HEX(repeat(CAST('中国' AS VARBINARY),1));
        +---------------------------------------------+
        | HEX(repeat(CAST('中国' AS VARBINARY), 1))   |
        +---------------------------------------------+
        | E4B8ADE59BBD                                |                   

REVERSE

reverse(varbinary x)            
  • 命令说明:反转字符串x中的字符。
  • 返回值类型:VARBINARY
  • 示例:
        select HEX(reverse(CAST('中国' AS VARBINARY)));
        +-------------------------------------------+
        | HEX(reverse(CAST('中国' AS VARBINARY)))   |
        +-------------------------------------------+
        | BD9BE5ADB8E4                              |                    

SHA2

sha2(varbinary x, integer y)
sha2(varbinary x, varchar y)            
  • 命令说明:计算字符串xSHA-2系列散列函数(SHA-224、SHA-256、SHA-384和SHA-512)。x是要清理的明文字符串,y表示结果所需的位数长度,其值必须为224、256、384、512或0。
  • 返回值类型:VARCHAR
  • 示例:
        select sha2(CAST('中国' AS VARBINARY),256);
        +------------------------------------------------------------------+
        | sha2(CAST('中国' AS varbinary), 256)                             |
        +------------------------------------------------------------------+
        | f0e9521611bb290d7b09b8cd14a63c3fe7cbf9a2f4e0090d8238d22403d35182 |                    

LPAD

lpad(varbinary x, bigint y, varchar z)
lpad(varbinary x, double y, varchar z)            
  • 命令说明:将字符串x左边拼接字符串z直到长度达到y,并返回拼接后的字符串。

    如果x长于y,则返回值将缩短为y个字符。

  • 返回值类型:VARBINARY
  • 示例:
        select HEX(lpad(CAST('中国' AS VARBINARY), 7,'-'));
        +------------------------------------------------+
        | HEX(lpad(CAST('中国' AS VARBINARY), 7, '-'))   |
        +------------------------------------------------+
        | 2DE4B8ADE59BBD                                 |                    

RPAD

rpad(varbinary x, bigint y, varchar z)
rpad(varbinary x, double y, varchar z)            
  • 命令说明:将字符串x右边拼接字符串z直到长度达到y,并返回拼接后的字符串。

    如果x长于y,则返回值将缩短为y个字符。

  • 返回值类型:VARBINARY
  • 示例:
        select HEX(rpad(CAST('中国' AS VARBINARY), 4.7,'x'));
        +--------------------------------------------------+
        | HEX(rpad(CAST('中国' AS VARBINARY), 4.7, 'x'))   |
        +--------------------------------------------------+
        | E4B8ADE59B                                       |                    

TO_BASE64

to_base64(varbinary x)            
  • 命令说明:返回字符串x的BASE64编码形式。
  • 返回值类型:VARCHAR
  • 示例:
        select to_base64(CAST('中国' AS VARBINARY));
        +----------------------------------------+
        | to_base64(CAST('中国' AS varbinary))   |
        +----------------------------------------+
        | 5Lit5Zu9                               |                    

FROM_BASE64

from_base64(varbinary x)            
  • 命令说明:解码BASE64编码的字符串x并返回结果。
  • 返回值类型:VARBINARY
  • 示例:
        select from_base64(to_base64(CAST('abc' AS VARBINARY)));
        +--------------------------------------------------+
        | from_base64(to_base64(CAST('abc' AS varbinary))) |
        +--------------------------------------------------+
        | abc                                              |