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

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

CHAR() 各引数 N を整数として解釈し、それらの整数のコード値によって与えられた文字を構成するストリングを戻します。NULL 値はとばされます。

mysql> SELECT CHAR(77,121,83,81,'76');
        -> 'MySQL'
mysql> SELECT CHAR(77,77.3,'77.3');
        -> 'MMM'

255 より大きい CHAR() 引数は複数結果バイトに変換されます。例えば、CHAR(256)CHAR(1,0) に等しく、CHAR(256*256)CHAR(1,0,0) に等しいことになります :

mysql> SELECT HEX(CHAR(1,0)), HEX(CHAR(256));
+----------------+----------------+
| HEX(CHAR(1,0)) | HEX(CHAR(256)) |
+----------------+----------------+
| 0100           | 0100           |
+----------------+----------------+
mysql> SELECT HEX(CHAR(1,0,0)), HEX(CHAR(256*256));
+------------------+--------------------+
| HEX(CHAR(1,0,0)) | HEX(CHAR(256*256)) |
+------------------+--------------------+
| 010000           | 010000             |
+------------------+--------------------+

デフォルトにより、CHAR() はバイナリ ストリングを戻します。与えられた文字セットでストリングを生成するには、オプションの USING 句を使用します :

mysql> SELECT CHARSET(CHAR(0x65)), CHARSET(CHAR(0x65 USING utf8));
+---------------------+--------------------------------+
| CHARSET(CHAR(0x65)) | CHARSET(CHAR(0x65 USING utf8)) |
+---------------------+--------------------------------+
| binary              | utf8                           |
+---------------------+--------------------------------+

USING が与えられ、結果ストリングが与えられた文字セットにとって不当になる場合は、警告が発行されます。また、厳密な SQL モードが有効にされた場合は、CHAR() からの結果は NULL になります。