MySQL UNHEX() 函式



MySQL 的UNHEX()函式用於將十六進位制字串表示轉換為其原始二進位制資料形式。

UNHEX() 函式可用於解碼使用 HEX() 函式編碼的資料、將十六進位制值轉換回其原始二進位制格式等場景。

語法

以下是 MySQL UNHEX() 函式的語法:

UNHEX(val);

引數

此函式接受十六進位制字串作為引數。

返回值

此函式返回給定十六進位制值的二進位制表示形式(字串)。

示例

在下面的示例中,我們將十六進位制字串表示“4D”轉換為其原始二進位制資料形式:

SELECT UNHEX('4D');

以上程式碼的輸出如下:

UNHEX('4D')
0x4D

如果停用--binary-as-hex值,則上述查詢的結果如下:

SELECT UNHEX('4D');

產生的結果如下:

UNHEX('4D')
M

示例

如果將非十六進位制值作為引數傳遞給 UNHEX(),則它將返回 NULL:

SELECT UNHEX('non-hexadecimal-string');

獲得的輸出如下:

UNHEX('non-hexadecimal-string')
NULL

示例

在下面的示例中,我們對“test123”的 HEX 值執行 UNHEX 操作。它將“test123”的十六進位制表示轉換回其原始形式:

SELECT UNHEX(HEX('test123'));

我們得到以下輸出:

UNHEX(HEX('test123'))
test123

示例

您還可以使用 UNHEX() 函式將列的值從十六進位制轉換為二進位制。

讓我們建立一個名為“EMP”的表,並使用 CREATE 和 INSERT 語句向其中插入記錄,如下所示:

CREATE TABLE EMP(
   NAME  CHAR(20) NOT NULL,
   AGE INT,
   INCOME FLOAT
);

現在,讓我們使用 INSERT 語句向其中插入記錄:

INSERT INTO EMP VALUES 
('52616a75', 19, 2000),
('5261686d616e', 20, 7000),
('526f62657274', 25, 5000);

獲得的 EMP 表如下所示:

NAME AGE INCOME
52616a75 19 2000
5261686d616e 20 7000
526f62657274 25 5000

以下查詢將 NAME 列的值從十六進位制字串轉換為二進位制:

SELECT NAME, AGE, INCOME UNHEX(NAME) 
FROM EMP;

執行上述程式碼後,我們將獲得以下輸出:

NAME AGE INCOME UNHEX(NAME)
52616a75 19 2000 Raju
5261686d616e 20 7000 Rahman
526f62657274 25 5000 Robert
mysql-unhex-function.htm
廣告