MySQL - HEX() 函式



MySQL HEX() 函式接受十進位制數或字串值,並返回其十六進位制表示形式。MySQL 中的十六進位制字面量值以 X'val' 或 0xval 表示法表示,其中 'val' 包含十六進位制數字 (0..9, A..F)。

預設情況下,十六進位制字面量是二進位制字串,其中每對十六進位制數字表示一個字元。因此,如果傳遞給此函式的引數是字串,則字串中每個字元的每個位元組都將轉換為兩個十六進位制數字。

但是,如果引數是數值,則其十六進位制表示形式將被視為 BIGINT UNSIGNED。

語法

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

HEX(val);

引數

此函式將數值或字串值作為引數。

返回值

此函式將給定輸入的十六進位制表示形式作為字串返回。

示例

以下查詢使用 MySQL HEX() 函式將十進位制值 225 轉換為其十六進位制表示形式:

SELECT HEX(225) As Result;

輸出

上面查詢的輸出如下所示:

結果
E1

示例

以下為此函式的另一個示例,此處我們將十進位制值 215456 轉換為其十六進位制表示形式:

SELECT HEX(215456) As Result;

輸出

這將產生以下結果:

結果
349A0

示例

我們還可以將字串值傳遞給此函式:

SELECT HEX('tutorialspoint') As Result;

輸出

輸出如下所示:

結果
7475746F7269616C73706F696E74

示例

在以下查詢中,我們嘗試將整數作為字串值傳遞給此函式:

SELECT HEX('447353') As Result;

輸出

這將產生以下結果:

結果
343437333533

示例

您還可以使用 HEX() 函式將列的值轉換為十六進位制。為此,讓我們使用以下查詢建立一個名為 CUSTOMERS 的表:

CREATE TABLE CUSTOMERS (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

以下查詢將 7 條記錄新增到上面建立的表中:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

要驗證是否插入了記錄,請執行以下查詢:

Select * From CUSTOMERS;

以下是 CUSTOMERS 表:

ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

以下 MySQL 語句將 SALARY 列的值轉換為十六進位制:

Select ID, NAME, ADDRESS, HEX(SALARY) From CUSTOMERS;

上面查詢的輸出如下所示:

ID NAME ADDRESS HEX(SALARY)
1 Ramesh Ahmedabad 7D0
2 Khilan Delhi 5DC
3 Kaushik Kota 7D0
4 Chaitali Mumbai 1964
5 Hardik Bhopal 2134
6 Komal Hyderabad 1194
7 Muffy Indore 2710
廣告