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
广告
© . All rights reserved.