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 子句指定结果的字符集。在此示例中,我们将十六进制值 '75' 转换为使用 UTF-8 字符集的字符 -
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如下-
| name | marks | grade |
|---|---|---|
| Raju | 80 | 65 |
| Rahman | 60 | 66 |
| Robert | 45 | 67 |
要使用 UTF-8 字符集检索与成绩值对应的字符,可以使用 CHAR() 函数,如下所示 -
SELECT *, CHAR(GRADE USING utf8) FROM STUDENTS_TBL;
执行上述代码后,我们得到以下输出 -
| name | marks | grade | CHAR(grade USING utf8) |
|---|---|---|---|
| Raju | 80 | 65 | A |
| Rahman | 60 | 66 | B |
| Robert | 45 | 67 | C |
mysql-char-function.html