すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:可変長バイナリ関数

最終更新日:Mar 29, 2026

可変長バイナリ関数は、BINARY、VARBINARY、BLOB などのバイナリ型データを処理します。これらの関数を使用して、データの暗号化および復号、文字列の圧縮および展開、値のエンコードおよびデコード、ハッシュの計算、バイナリ文字列の操作を行います。

このトピックのすべての例では、Data Management (DMS) から生成された戻り値を使用しています。クライアント側での解析動作の違いにより、他のクライアントでは戻り値が異なる場合があります。たとえば、'China' は一部のクライアントで 0x4368696E61 として解析されます。

関数概要

暗号化および復号

関数説明戻り値の型
AES_DECRYPT(X, Y)Y をキーとして Advanced Encryption Standard (AES) アルゴリズムを使用して X を復号します。VARBINARY
AES_DECRYPT_MY(X, Y)Y をキーとして AES を使用して X を復号します。MySQL 互換 — MySQL で暗号化されたデータを復号できます。V3.1.10.0 以降が必要です。VARBINARY
AES_ENCRYPT(X, Y)Y をキーとして AES を使用して X を暗号化します。VARBINARY
AES_ENCRYPT_MY(X, Y)Y をキーとして AES を使用して X を暗号化します。MySQL 互換 — この関数で暗号化されたデータは MySQL で復号できます。V3.1.10.0 以降が必要です。VARBINARY
ENCRYPT(X, Y)Y をソルト値として X を暗号化します。BLOB

圧縮および展開

関数説明戻り値の型バージョン
COMPRESS(X)X を圧縮し、結果をバイナリ文字列として返します。VARBINARY
UNCOMPRESS(X)X を解凍します。X は COMPRESS()BLOB
UNCOMPRESSED_LENGTH(X)圧縮前の X の長さを返します。LONG
GZIP(X)X を GZIP 形式で圧縮し、結果をバイナリ文字列として返します。VARBINARYV3.1.9.3+
GUNZIP(X)X を GZIP 形式で解凍し、結果をバイナリ文字列として返します。VARBINARYV3.1.9.3+
ZIP(X)X を ZIP 形式で圧縮し、結果をバイナリ文字列として返します。VARBINARYV3.1.9.3+
UNZIP(X)X を ZIP 形式で解凍し、結果をバイナリ文字列として返します。VARBINARYV3.1.9.3+

エンコードおよびデコード

関数説明戻り値の型
HEX(X)X を 16 進数文字列に変換します。VARCHAR
UNHEX(X)X の文字ペアを 16 進数値として解釈し、バイトに変換してバイナリ文字列として返します。VARBINARY
FROM_BASE64(X)Base64 エンコードされた文字列 X をデコードして結果を返します。BLOB
TO_BASE64(X)X を Base64 フォーマットでエンコードして結果を返します。VARCHAR

ハッシュおよびチェックサム

関数説明戻り値の型
MD5(X)X のメッセージダイジェストアルゴリズム 5 (MD5) ハッシュを返します。VARCHAR
SHA1(X)X のセキュアハッシュアルゴリズム 1 (SHA-1) チェックサムを返します。VARCHAR
SHA2(X, Y)X の SHA-2 チェックサムを返します。Y はビット長を指定します:224、256、384、512、または 0。VARCHAR
CRC32(X)X の巡回冗長検査 (CRC) コードを返します。LONG

文字列操作

関数説明戻り値の型
CHAR_LENGTH(X)X の文字数を返します。LONG
LENGTH(X)X のバイト数を返します。LONG
LEFT(X, Y)X の先頭から Y 文字を返します。BLOB
RIGHT(X, Y)X の末尾から Y 文字を返します。VARBINARY
SUBSTR(X, Y[, Z])位置 Y から始まる部分文字列を返します。Z は長さを指定します。VARBINARY
LPAD(X, Y, Z)X を Z で左側からパディングして、合計 Y 文字にします。X が Y 文字より長い場合は、X を Y 文字に切り捨てます。VARBINARY
RPAD(X, Y, Z)X を Z で右側からパディングして、合計 Y 文字にします。X が Y 文字より長い場合は、X を Y 文字に切り捨てます。VARBINARY
LTRIM(X)X から先頭のスペースを削除します。BLOB
RTRIM(X)X から末尾のスペースを削除します。BLOB
TRIM(X)X から先頭および末尾のスペースを削除します。BLOB
LOWER(X)X を小文字で返します。VARBINARY
UPPER(X)X を大文字で返します。VARBINARY
REPEAT(X, Y)X を Y 回繰り返して返します。VARBINARY
REVERSE(X)X の文字順を逆にして返します。VARBINARY
ORD(X)X の先頭文字がマルチバイト文字の場合、その文字コードを返します。LONG

注意事項

  • クライアント固有の出力: 解析動作の違いにより、クライアント間で戻り値が異なる場合があります。このトピックの例では、DMS の出力を使用しています。

  • バージョン要件: GUNZIPGZIPUNZIP、および ZIP には V3.1.9.3 以降が必要です。AES_DECRYPT_MY および AES_ENCRYPT_MY には V3.1.10.0 以降が必要です。

    • Data Lakehouse Edition クラスターのマイナーバージョンを確認するには、SELECT adb_version(); を実行します。アップデートするには、テクニカルサポートにお問い合わせください。

    • Data Warehouse エディション クラスターのマイナーバージョンを表示または更新するには、「クラスターのマイナーバージョンを更新する」をご参照ください。

  • AES_ENCRYPT と AES_ENCRYPT_MY の違い: 暗号化および復号の両方が AnalyticDB for MySQL 内で行われる場合は AES_ENCRYPT を使用してください。暗号化されたデータを MySQL で復号できるようにする場合、または MySQL で暗号化されたデータを復号する場合は AES_ENCRYPT_MY を使用してください。

  • NULL の動作: UNHEX() は、入力に 16 進数の有効値(0–9、A–F)以外の文字が含まれている場合、NULL を返します。

  • バイナリ結果の格納: VARBINARY または BLOB を返す関数は任意のバイト値を生成する可能性があります。バイナリ結果を読みやすいテキストとして表示するには、出力を HEX() で囲んでください。

AES_DECRYPT

AES_DECRYPT(VARBINARY X, VARCHAR Y)

Y をキーとして AES を使用して X を復号します。

例:

SELECT HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'));

次の結果が返されます。

+-----------------------------------------------------------------------------+
| HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'))    |
+-----------------------------------------------------------------------------+
|   4368696E61                                                                |
+-----------------------------------------------------------------------------+
SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));

次の結果が返されます。

+---------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY)))|
+---------------------------------------+
| China                                 | 
+---------------------------------------+
SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));

次の結果が返されます。

+---------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY)))|
+---------------------------------------+
| China                                 | 
+---------------------------------------+
SELECT HEX(GZIP(CAST('China' AS VARBINARY)));

次の結果が返されます。

+------------------------------------------------------+
| HEX(GZIP(CAST('China' AS VARBINARY)))                |
+------------------------------------------------------+
|1F8B080000000000000073CEC8CC4B040020ED2EA105000000    | 
+------------------------------------------------------+
SELECT GUNZIP(GZIP(CAST('China' AS VARBINARY)));

次の結果が返されます。

+--------------------------------------------+
| GUNZIP(GZIP(CAST('China' AS VARBINARY)))   |
+--------------------------------------------+
| China                                      |  
+--------------------------------------------+
SELECT UNHEX(CAST('China' AS VARBINARY));

次の結果が返されます。

+------------------------------------+
| UNHEX(CAST('China' AS VARBINARY))  |
+------------------------------------+
| NULL                               |  
+------------------------------------+
SELECT UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY)));

次の結果が返されます。

+------------------------------------------------------------+
| UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY)))  |
+------------------------------------------------------------+
| 5                                                          |
+------------------------------------------------------------+
SELECT UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY)));

次の結果が返されます。

+---------------------------------------------------+
| UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY)))  |
+---------------------------------------------------+
| China                                             | 
+---------------------------------------------------+
SELECT TRIM(CAST('  China  ' AS VARBINARY));

次の結果が返されます。

+---------------------------------------+
| TRIM(CAST('  China  ' AS VARBINARY))  |
+---------------------------------------+
| China                                 | 
+---------------------------------------+
SELECT TO_BASE64(CAST('China' AS VARBINARY));

次の結果が返されます。

+----------------------------------------+
| TO_BASE64(CAST('China' AS VARBINARY))  |
+----------------------------------------+
| Q2hpbmE=                               |
+----------------------------------------+
SELECT SHA2(CAST('China' AS VARBINARY),256);

次の結果が返されます。

+------------------------------------------------------------------+
| SHA2(CAST('China' AS VARBINARY),256)                            |
+------------------------------------------------------------------+
| 10436829032f361a3de50048de41755140e581467bc1895e6c1a17f423e42d10 |
+------------------------------------------------------------------+
SELECT SHA1(CAST('China' AS VARBINARY));

次の結果が返されます。

+------------------------------------------+
| SHA1(CAST('China' AS VARBINARY))         |
+------------------------------------------+
| d2eaf2aa1512d6596e0a5bae633537c6b8e779a3 |      
+------------------------------------------+
SELECT RTRIM(CAST('  China  ' AS VARBINARY));

次の結果が返されます。

+----------------------------------------+
| RTRIM(CAST('  China  ' AS VARBINARY))  |
+----------------------------------------+
|   China                                | 
+----------------------------------------+
SELECT HEX(RPAD(CAST('China' AS VARBINARY), 4.7,'x'));

次の結果が返されます。

+--------------------------------------------------+
| HEX(RPAD(CAST('China' AS VARBINARY), 4.7, 'x'))  |
+--------------------------------------------------+
| 4368696E61                                       | 
+--------------------------------------------------+
SELECT HEX(RIGHT(CAST('China' AS VARBINARY),1));

次の結果が返されます。

+--------------------------------------------+
| HEX(RIGHT(CAST('China' AS VARBINARY), 1))  |
+--------------------------------------------+
| 61                                         |
+--------------------------------------------+
SELECT HEX(REVERSE(CAST('China' AS VARBINARY)));

次の結果が返されます。

+-------------------------------------------+
| HEX(REVERSE(CAST('China' AS VARBINARY)))  |
+-------------------------------------------+
|  616E696843                               |
+-------------------------------------------+
SELECT HEX(REPEAT(CAST('China' AS VARBINARY),1));

次の結果が返されます。

+---------------------------------------------+
| HEX(REPEAT(CAST('China' AS VARBINARY), 1))  |
+---------------------------------------------+
|  4368696E61                                 | 
+---------------------------------------------+
SELECT ORD(CAST('China' AS VARBINARY));

次の結果が返されます。

+----------------------------------+
| ORD(CAST('China' AS VARBINARY))  |
+----------------------------------+
|67                                | 
+----------------------------------+
SELECT MD5(CAST('China' AS VARBINARY));

次の結果が返されます。

+----------------------------------+
| MD5(CAST('China' AS VARBINARY))  |
+----------------------------------+
| ae54a5c026f31ada088992587d92cb3a | 
+----------------------------------+
SELECT LTRIM(CAST('  China  ' AS VARBINARY));

次の結果が返されます。

+----------------------------------------+
| LTRIM(CAST('  China  ' AS VARBINARY))  |
+----------------------------------------+
| China                                  |
+----------------------------------------+
SELECT HEX(LPAD(CAST('China' AS VARBINARY), 7,'-'));

次の結果が返されます。

+------------------------------------------------+
| HEX(LPAD(CAST('China' AS VARBINARY), 7, '-'))  |
+------------------------------------------------+
| 2D2D4368696E61                                 | 
+------------------------------------------------+
SELECT LEFT(CAST('China' AS VARBINARY),1000);

次の結果が返されます。

+-----------------------------------------+
| LEFT(CAST('China' AS VARBINARY), 1000)  |
+-----------------------------------------+
| China                                   | 
+-----------------------------------------+
SELECT HEX(CAST('China' AS VARBINARY));

次の結果が返されます。

+----------------------------------+
| HEX(CAST('China' AS VARBINARY))  |
+----------------------------------+
|  4368696E61                      | 
+----------------------------------+
SELECT CRC32(CAST('China' AS VARBINARY));

次の結果が返されます。

+------------------------------------+
| CRC32(CAST('China' AS VARBINARY))  |
+------------------------------------+
| 2704207136                         | 
+------------------------------------+
SELECT HEX(COMPRESS(CAST('China' AS VARBINARY)));               

次の結果が返されます。

+--------------------------------------------+
| HEX(COMPRESS(CAST('China' AS VARBINARY)))  |
+--------------------------------------------+
|  05000000789C73CEC8CC4B0400056C01E4        |
+--------------------------------------------+
SELECT HEX(AES_ENCRYPT_MY('China', 'key_string'));

次の結果が返されます。

+-------------------------------------------------------+
|HEX(AES_ENCRYPT_MY('China', 'key_string'))             |
+-------------------------------------------------------+
|CF3AB34E18CD73CE37D46AD2588BA258                       | 
+-------------------------------------------------------+
SELECT HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'));

次の結果が返されます。

+-------------------------------------------------------+
|HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'))   |
+-------------------------------------------------------+
| 6C5CB5E59E3EA58E58CFBE3C76BFBECA                      |
+-------------------------------------------------------+
SELECT HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'));

次の結果が返されます。

+-----------------------------------------------------------------------------+
| HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'))    |
+-----------------------------------------------------------------------------+
|   4368696E61                                                                |
+-----------------------------------------------------------------------------+
SELECT HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'), '0123'));

出力:

+-----------------------------------------------------------------------------+
| HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'))   |
+-----------------------------------------------------------------------------+
| 4368696E61                                                                  |
+-----------------------------------------------------------------------------+

AES_DECRYPT_MY

重要

AES_DECRYPT_MY は MySQL と互換性があります。MySQL で暗号化されたデータを復号する場合に使用します。AnalyticDB for MySQL V3.1.10.0 以降が必要です。

AES_DECRYPT_MY(VARBINARY X, VARCHAR Y)

Y をキーとして AES を使用して X を復号します。

例:

SELECT CAST(AES_DECRYPT_MY(UNHEX('CF3AB34E18CD73CE37D46AD2588BA258'), 'key_string') AS CHAR);

出力:

+----------------------------------------------------------------------------------------+
| CAST(AES_DECRYPT_MY(UNHEX('CF3AB34E18CD73CE37D46AD2588BA258'),'key_string') AS CHAR)  |
+----------------------------------------------------------------------------------------+
| China                                                                                  |
+----------------------------------------------------------------------------------------+

AES_ENCRYPT

AES_ENCRYPT(VARBINARY X, VARCHAR Y)

Y をキーとして AES を使用して X を暗号化します。

例:

SELECT HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'));

出力:

+-------------------------------------------------------+
| HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'))  |
+-------------------------------------------------------+
| 6C5CB5E59E3EA58E58CFBE3C76BFBECA                      |
+-------------------------------------------------------+

AES_ENCRYPT_MY

重要

AES_ENCRYPT_MY は MySQL と互換性があります。この関数で暗号化されたデータは MySQL で復号できます。AnalyticDB for MySQL V3.1.10.0 以降が必要です。

AES_ENCRYPT_MY(VARBINARY X, VARCHAR Y)

Y をキーとして AES を使用して X を暗号化します。

例:

SELECT HEX(AES_ENCRYPT_MY('China', 'key_string'));

出力:

+--------------------------------------------+
| HEX(AES_ENCRYPT_MY('China', 'key_string')) |
+--------------------------------------------+
| CF3AB34E18CD73CE37D46AD2588BA258           |
+--------------------------------------------+

CHAR_LENGTH

CHAR_LENGTH(VARBINARY X)

X の文字数を返します。

例:

SELECT CHAR_LENGTH(CAST('ABC' AS VARBINARY));

出力:

+---------------------------------------+
| CHAR_LENGTH(CAST('ABC' AS VARBINARY)) |
+---------------------------------------+
| 3                                     |
+---------------------------------------+

COMPRESS

COMPRESS(VARBINARY X)

X を圧縮し、結果をバイナリ文字列として返します。結果を読みやすいテキストとして表示するには、HEX() を使用してください。

例:

SELECT HEX(COMPRESS(CAST('China' AS VARBINARY)));

出力:

+--------------------------------------------+
| HEX(COMPRESS(CAST('China' AS VARBINARY)))  |
+--------------------------------------------+
| 05000000789C73CEC8CC4B0400056C01E4         |
+--------------------------------------------+

CRC32

CRC32(VARBINARY X)

X の巡回冗長検査 (CRC) コードを返します。

例:

SELECT CRC32(CAST('China' AS VARBINARY));

出力:

+------------------------------------+
| CRC32(CAST('China' AS VARBINARY))  |
+------------------------------------+
| 2704207136                         |
+------------------------------------+

ENCRYPT

ENCRYPT(VARBINARY X, VARCHAR Y)

Y をソルト値として X を暗号化します。

例:

SELECT ENCRYPT('ABDABC123', 'KEY');

出力:

+-----------------------------+
| ENCRYPT('ABDABC123','KEY')  |
+-----------------------------+
| kezazmcIo.aCw               |
+-----------------------------+

FROM_BASE64

FROM_BASE64(VARBINARY X)

Base64 エンコードされた文字列 X をデコードして結果を返します。

例:

SELECT FROM_BASE64(TO_BASE64(CAST('abc' AS VARBINARY)));

出力:

+--------------------------------------------------+
| FROM_BASE64(TO_BASE64(CAST('abc' AS VARBINARY))) |
+--------------------------------------------------+
| abc                                              |
+--------------------------------------------------+

GUNZIP

重要

AnalyticDB for MySQL V3.1.9.3 以降が必要です。

GUNZIP(VARBINARY X)

X を GZIP フォーマットで展開し、結果をバイナリ文字列として返します。

例:

SELECT GUNZIP(GZIP(CAST('China' AS VARBINARY)));

出力:

+------------------------------------------+
| GUNZIP(GZIP(CAST('China' AS VARBINARY))) |
+------------------------------------------+
| China                                    |
+------------------------------------------+

GZIP

重要

AnalyticDB for MySQL V3.1.9.3 以降が必要です。

GZIP(VARBINARY X)

X を GZIP フォーマットで圧縮し、結果をバイナリ文字列として返します。結果を読みやすいテキストとして表示するには、HEX() を使用してください。

例:

SELECT HEX(GZIP(CAST('China' AS VARBINARY)));

出力:

+----------------------------------------------------------+
| HEX(GZIP(CAST('China' AS VARBINARY)))                    |
+----------------------------------------------------------+
| 1F8B080000000000000073CEC8CC4B040020ED2EA105000000       |
+----------------------------------------------------------+

HEX

HEX(VARBINARY X)

X を 16 進数文字列に変換します。

例:

SELECT HEX(CAST('China' AS VARBINARY));

出力:

+----------------------------------+
| HEX(CAST('China' AS VARBINARY))  |
+----------------------------------+
| 4368696E61                       |
+----------------------------------+

LEFT

LEFT(VARBINARY X, BIGINT Y)
LEFT(VARBINARY X, DOUBLE Y)

X の先頭から Y 文字を返します。

例:

SELECT LEFT(CAST('China' AS VARBINARY), 1000);

出力:

+-----------------------------------------+
| LEFT(CAST('China' AS VARBINARY), 1000)  |
+-----------------------------------------+
| China                                   |
+-----------------------------------------+

LENGTH

LENGTH(VARBINARY X)

X のバイト数を返します。

例:

SELECT LENGTH(CAST('ABC' AS VARBINARY));

出力:

+----------------------------------+
| LENGTH(CAST('ABC' AS VARBINARY)) |
+----------------------------------+
| 3                                |
+----------------------------------+

LOWER

LOWER(VARBINARY X)

X を小文字で返します。

例:

SELECT LOWER(CAST('ABC' AS VARBINARY));

出力:

+---------------------------------+
| LOWER(CAST('ABC' AS VARBINARY)) |
+---------------------------------+
| abc                             |
+---------------------------------+

LPAD

LPAD(VARBINARY X, BIGINT Y, VARCHAR Z)
LPAD(VARBINARY X, DOUBLE Y, VARCHAR Z)

X を Z で左側からパディングして、合計 Y 文字にします。X が Y 文字より長い場合は、結果を Y 文字に切り捨てます。

例:

SELECT HEX(LPAD(CAST('China' AS VARBINARY), 7, '-'));

出力:

+------------------------------------------------+
| HEX(LPAD(CAST('China' AS VARBINARY), 7, '-'))  |
+------------------------------------------------+
| 2D2D4368696E61                                 |
+------------------------------------------------+

LTRIM

LTRIM(VARBINARY X)

X から先頭のスペースを削除します。

例:

SELECT LTRIM(CAST('  China  ' AS VARBINARY));

出力:

+----------------------------------------+
| LTRIM(CAST('  China  ' AS VARBINARY))  |
+----------------------------------------+
| China                                  |
+----------------------------------------+

MD5

MD5(VARBINARY X)

X の MD5 ハッシュを返します。

例:

SELECT MD5(CAST('China' AS VARBINARY));

出力:

+----------------------------------+
| MD5(CAST('China' AS VARBINARY))  |
+----------------------------------+
| ae54a5c026f31ada088992587d92cb3a |
+----------------------------------+

ORD

ORD(VARBINARY X)

X の先頭文字がマルチバイト文字の場合、その文字コードを返します。

例:

SELECT ORD(CAST('China' AS VARBINARY));

出力:

+----------------------------------+
| ORD(CAST('China' AS VARBINARY))  |
+----------------------------------+
| 67                               |
+----------------------------------+

REPEAT

REPEAT(VARBINARY X, DOUBLE Y)
REPEAT(VARBINARY X, BIGINT Y)

X を Y 回繰り返して返します。

例:

SELECT HEX(REPEAT(CAST('China' AS VARBINARY), 1));

出力:

+---------------------------------------------+
| HEX(REPEAT(CAST('China' AS VARBINARY), 1))  |
+---------------------------------------------+
| 4368696E61                                  |
+---------------------------------------------+

REVERSE

REVERSE(VARBINARY X)

X の文字順を逆にして返します。

例:

SELECT HEX(REVERSE(CAST('China' AS VARBINARY)));

出力:

+-------------------------------------------+
| HEX(REVERSE(CAST('China' AS VARBINARY)))  |
+-------------------------------------------+
| 616E696843                                |
+-------------------------------------------+

RIGHT

RIGHT(VARBINARY X, BIGINT Y)
RIGHT(VARBINARY X, DOUBLE Y)

X の末尾から Y 文字を返します。

例:

SELECT HEX(RIGHT(CAST('China' AS VARBINARY), 1));

出力:

+--------------------------------------------+
| HEX(RIGHT(CAST('China' AS VARBINARY), 1))  |
+--------------------------------------------+
| 61                                         |
+--------------------------------------------+

RPAD

RPAD(VARBINARY X, BIGINT Y, VARCHAR Z)
RPAD(VARBINARY X, DOUBLE Y, VARCHAR Z)

X を Z で右側からパディングして、合計 Y 文字にします。X が Y 文字より長い場合は、結果を Y 文字に切り捨てます。

例:

SELECT HEX(RPAD(CAST('China' AS VARBINARY), 4.7, 'x'));

出力:

+--------------------------------------------------+
| HEX(RPAD(CAST('China' AS VARBINARY), 4.7, 'x'))  |
+--------------------------------------------------+
| 4368696E61                                       |
+--------------------------------------------------+

RTRIM

RTRIM(VARBINARY X)

X から末尾のスペースを削除します。

例:

SELECT RTRIM(CAST('  China  ' AS VARBINARY));

出力:

+----------------------------------------+
| RTRIM(CAST('  China  ' AS VARBINARY))  |
+----------------------------------------+
|   China                                |
+----------------------------------------+

SHA1

SHA1(VARBINARY X)

X の SHA-1 チェックサムを返します。

例:

SELECT SHA1(CAST('China' AS VARBINARY));

出力:

+------------------------------------------+
| SHA1(CAST('China' AS VARBINARY))         |
+------------------------------------------+
| d2eaf2aa1512d6596e0a5bae633537c6b8e779a3 |
+------------------------------------------+

SHA2

SHA2(VARBINARY X, INTEGER Y)
SHA2(VARBINARY X, VARCHAR Y)

X の SHA-2 チェックサムを返します。Y は出力ビット長を指定し、224、256、384、512、または 0 のいずれかである必要があります。対応するバリアント:SHA-224、SHA-256、SHA-384、SHA-512。

例:

SELECT SHA2(CAST('China' AS VARBINARY), 256);

出力:

+------------------------------------------------------------------+
| SHA2(CAST('China' AS VARBINARY),256)                             |
+------------------------------------------------------------------+
| 10436829032f361a3de50048de41755140e581467bc1895e6c1a17f423e42d10 |
+------------------------------------------------------------------+

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)

X の位置 Y から始まる部分文字列を返します。Z は返す文字数を指定します。

TO_BASE64

TO_BASE64(VARBINARY X)

X を Base64 フォーマットでエンコードして結果を返します。

例:

SELECT TO_BASE64(CAST('China' AS VARBINARY));

出力:

+----------------------------------------+
| TO_BASE64(CAST('China' AS VARBINARY))  |
+----------------------------------------+
| Q2hpbmE=                               |
+----------------------------------------+

TRIM

TRIM(VARBINARY X)

X から先頭および末尾のスペースを削除します。

例:

SELECT TRIM(CAST('  China  ' AS VARBINARY));

出力:

+---------------------------------------+
| TRIM(CAST('  China  ' AS VARBINARY))  |
+---------------------------------------+
| China                                 |
+---------------------------------------+

UNCOMPRESS

UNCOMPRESS(VARBINARY X)

X を展開します。COMPRESS() 関数で圧縮されている必要があります。

例:

SELECT UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY)));

出力:

+---------------------------------------------------+
| UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY)))  |
+---------------------------------------------------+
| China                                             |
+---------------------------------------------------+

UNCOMPRESSED_LENGTH

UNCOMPRESSED_LENGTH(VARBINARY X)

X の圧縮前の長さを返します。

例:

SELECT UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY)));

出力:

+------------------------------------------------------------+
| UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY)))  |
+------------------------------------------------------------+
| 5                                                          |
+------------------------------------------------------------+

UNHEX

UNHEX(VARBINARY X)

X の文字ペアを 16 進数値として解釈し、バイトに変換してバイナリ文字列として返します。入力に 16 進数の有効値(0–9、A–F)以外の文字が含まれている場合、NULL を返します。

例:

SELECT UNHEX(CAST('China' AS VARBINARY));

出力:

+------------------------------------+
| UNHEX(CAST('China' AS VARBINARY))  |
+------------------------------------+
| NULL                               |
+------------------------------------+

結果は NULL になります。これは、'China' に 16 進数の有効値(0–9、A–F)以外の文字が含まれているためです。

UNZIP

重要

AnalyticDB for MySQL V3.1.9.3 以降が必要です。

UNZIP(VARBINARY X)

X を ZIP フォーマットで展開し、結果をバイナリ文字列として返します。

例:

SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));

出力:

+----------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY))) |
+----------------------------------------+
| China                                  |
+----------------------------------------+

UPPER

UPPER(VARBINARY X)

X を大文字で返します。

例:

SELECT UPPER(CAST('abc' AS VARBINARY));

出力:

+---------------------------------+
| UPPER(CAST('abc' AS VARBINARY)) |
+---------------------------------+
| ABC                             |
+---------------------------------+

ZIP

重要

AnalyticDB for MySQL V3.1.9.3 以降が必要です。

ZIP(VARBINARY X)

X を ZIP フォーマットで圧縮し、結果をバイナリ文字列として返します。結果を読みやすいテキストとして表示するには、HEX() を使用してください。

例:

SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));

出力:

+----------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY))) |
+----------------------------------------+
| China                                  |
+----------------------------------------+