宣言
CHAR(value1,... [USING charset_name])
説明
各パラメータを整数に変換し、これらの整数のコード値によって表される文字で構成される文字列を返します。また、NULL 値はスキップされます。
さらに、パラメータが255を超える場合、そのパラメータは複数の結果バイトに変換されます。例えば、CHAR(256) は CHAR(1,0) と同等であり、CHAR(256*256) は CHAR(1,0,0) と同等です。
デフォルトでは、CHAR() が返す文字列の文字セットは binary です。USING 句を使用して、返す文字セットを指定できます。
obclient> select CHARSET(char('')), CHARSET(char('' USING utf8mb4));
+-------------------+---------------------------------+
| CHARSET(char('')) | CHARSET(char('' USING utf8mb4)) |
+-------------------+---------------------------------+
| binary | utf8mb4 |
+-------------------+---------------------------------+
1 row in set
返される値が指定された文字セット内で無効な場合、WARNING ヒントがスローされます。特に、sql_mode が STRICT_ALL_TABLES または STRICT_TRANS_TABLES に設定されている場合、返される値が指定された文字セット内で無効な場合、NULL を返します。
sql_mode の詳細については、sql_modeを参照してください。
obclient> SET SESSION sql_mode='STRICT_ALL_TABLES';
obclient> SELECT CHAR(399 USING utf8);
+----------------------+
| CHAR(399 USING utf8) |
+----------------------+
| NULL |
+----------------------+
1 row in set, 1 warning
例
obclient> SELECT CHAR(79,99,101,97,110,66,97.4,115,'101');
+------------------------------------------+
| CHAR(79,99,101,97,110,66,97.4,115,'101') |
+------------------------------------------+
| OceanBase |
+------------------------------------------+
1 row in set