MySQL CHAR() 函数



MySQL 的CHAR()函数接受一个或多个整数值作为参数,并返回一个包含由给定整数表示的字符的字符串。如果输入为NULL,则该函数将忽略它们。

您可以使用USING子句指定结果的所需字符集。如果您在MySQL客户端中调用此函数,则二进制字符串将使用十六进制表示法显示。

此函数可用于各种场景,例如将数字代码转换为字符或在字符和数字格式之间转换数据类型。

语法

以下是MySQL CHAR()函数的语法:

CHAR(N,... [USING charset_name])

参数

此函数采用整数或字符串值作为参数,表示Unicode代码点。

返回值

此函数返回给定输入的相应字符。

示例

在这个例子中,我们使用CHAR()函数将一系列整数和十六进制值转换为字符串:

SELECT CHAR(74, 75, 74, '6F', 72, 69, 61, '6C', 73, 70, '6F', 69, '6E', 74);

以上代码的输出如下:

CHAR(74, 75, 74, '6F', 72, 69, 61, '6C', 73, 70, '6F', 69, '6E', 74)
0x4A4B4A0648453D0649460645064A

示例

在这个例子中,我们将一系列整数转换为字符串:

SELECT CHAR(61, 62, 63, 64, 65, 66, 67);

以上代码的输出如下:

CHAR(61, 62, 63, 64, 65, 66, 67)
0x3D3E3F40414243

示例

如果将空字符串作为参数传递,则该函数返回空字符:

SELECT CHAR('');

获得的输出如下:

CHAR('')
0x00

示例

当您将NULL值作为参数传递时,结果为空字符串:

SELECT CHAR(NULL);

产生的结果如下:

CHAR(NULL)
0x

示例

您可以使用USING子句指定结果的字符集。在这个例子中,我们使用UTF-8字符集将十六进制值'75'转换为字符:

SELECT CHAR(X'75' USING utf8);

我们得到如下输出:

CHAR(X'75' USING utf8)
u

示例

如果传递给CHAR()函数的参数大于255,则它将返回多个结果字节,显示等效集:

SELECT HEX(CHAR(1,0,0,0)), HEX(CHAR(256*256*256));

以上代码的输出如下:

HEX(CHAR(1,0,0,0)) HEX(CHAR(256*256*256))
01000000 01000000

示例

您还可以使用CHAR()函数将存储在表中的数字代码转换为字符。

让我们创建一个名为“STUDENTS_TABLE”的表,并使用CREATE和INSERT语句向其中插入记录,如下所示:

CREATE TABLE STUDENTS_TBL (
   name VARCHAR(15),
   marks INT,
   grade INT
);

现在,让我们使用INSERT语句向其中插入记录:

INSERT INTO STUDENTS_TBL VALUES 
('Raju', 80, '65'),
('Rahman', 60, '66'),
('Robert', 45, '67');

获得的STUDENTS_TBL如下:

姓名 分数 等级
Raju 80 65
Rahman 60 66
Robert 45 67

要使用UTF-8字符集检索与等级值对应的字符,您可以按如下方式使用CHAR()函数:

SELECT *, CHAR(GRADE USING utf8) FROM STUDENTS_TBL;

执行以上代码后,我们将得到以下输出:

姓名 分数 等级 CHAR(grade USING utf8)
Raju 80 65 A
Rahman 60 66 B
Robert 45 67 C
mysql-char-function.htm
广告