MySQL CHAR() 函数将每个传递的参数解释为整数,并返回一个由这些整数的代码值给出的字符组成的字符串。它忽略 NULL 值。
对于大于 255 的参数,将转换为多个结果字节。例如,CHAR(256) 相当于 CHAR(1,0),CHAR(256*256) 相当于 CHAR(1,0,0)。
默认情况下,此函数返回一个二进制字符串。要生成给定字符集中的字符串,可以使用可选的 USING 子句。请参阅下面的示例。如果给出 USING 并且结果字符串对于给定字符集非法,则会发出警告。另外,如果启用严格 SQL 模式,CHAR() 的结果将变为 NULL。
语法
CHAR(N,... [USING charset_name])
参数
N,... | 必填。 指定要检索其字符值(根据 ASCII 表)的整数。 |
USING charset_name | 可选。 用于生成给定字符集中的字符串。 |
返回值
返回由字符组成的字符串由这些整数的代码值给出。
示例 1:
下面的示例显示了 CHAR() 函数的用法。
mysql> SELECT CHAR(72,69,76,76,79);
Result: 'HELLO'
mysql> SELECT CHAR(72,69,76,NULL,76,79);
Result: 'HELLO'
mysql> SELECT CHAR('72',69,'76',76,79);
Result: 'HELLO'
mysql> SELECT CHAR('72.8',69,'76.3',76,79);
Result: 'HELLO'
mysql> SELECT CHAR(65,66,67);
Result: 'ABC'
mysql> SELECT CHAR(65,66,67 USING utf8);
Result: 'ABC'
mysql> SELECT CHARSET(CHAR(65)), CHARSET(CHAR(65 USING utf8));
Result: 'binary', 'utf8'
示例 2:
考虑一个名为 Sample 的数据库表,其中包含以下记录:
Data | x1 | x2 | x3 |
---|---|---|---|
Data1 | 67 | 117 | 116 |
Data2 | 80 | 117 | 116 |
Data3 | 84 | 111 | 111 |
Data4 | 66 | 111 | 119 |
Data5 | 67 | 79 | 68 |
Data6 | 69 | 110 | 100 |
可以使用下面给出的语句获取包含由 x1、x2 和 x3 列指定的代码值给出的字符的字符串。
SELECT *, CHAR(x1, x2, x3) AS CHAR_String FROM Sample;
The查询将产生以下结果:
Data | x1 | x2 | x3 | CHAR_String |
---|---|---|---|---|
Data1 | 67 | 117 | 116 | Cut |
Data2 | 80 | 117 | 116 | Put |
Data3 | 84 | 111 | 111 | Too |
Data4 | 66 | 111 | 119 | Bow |
Data5 | 67 | 79 | 68 | COD |
Data6 | 69 | 110 | 100 | End |