可変長バイナリ関数は、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 形式で圧縮し、結果をバイナリ文字列として返します。 | VARBINARY | V3.1.9.3+ |
GUNZIP(X) | X を GZIP 形式で解凍し、結果をバイナリ文字列として返します。 | VARBINARY | V3.1.9.3+ |
ZIP(X) | X を ZIP 形式で圧縮し、結果をバイナリ文字列として返します。 | VARBINARY | V3.1.9.3+ |
UNZIP(X) | X を ZIP 形式で解凍し、結果をバイナリ文字列として返します。 | VARBINARY | V3.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 の出力を使用しています。
バージョン要件:
GUNZIP、GZIP、UNZIP、および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 |
+----------------------------------------+