CHAR
Devuelve una cadena formada por los bytes con los códigos indicados.
CHAR(num[, ...] [USING charset])- [ ]parte opcional
- ...se puede repetir
- num
- Código de byte; un número mayor que 255 da varios bytesINT
- USING charset
- Leer los bytes como cadena en la codificación indicada; sin USING, una cadena binariaOpcional
- charset
- Codificación, por ejemplo utf8mb4Palabra clavearmscii8asciibig5binarycp1250cp1251cp1256cp1257cp850cp852cp866cp932dec8eucjpmseuckrgb18030gb2312gbkgeostd8greekhebrewhp8keybcs2koi8rkoi8ulatin1latin2latin5latin7maccemacromansjisswe7tis620ucs2ujisutf16utf16leutf32utf8mb3utf8mb4
Valor devuelto
Cadena binaria con los bytes de los códigos indicados; con USING, una cadena en esa codificación; los argumentos NULL se omiten
Ejemplos
Cadena a partir de códigos de caracteres
SELECT CHAR(72, 105);Omitir NULL entre los códigos
SELECT CHAR(83, NULL, 81, 76);Letra cirílica a partir de bytes UTF-8
SELECT CHAR(208, 191 USING utf8mb4) AS letter;LOWER no modifica una cadena binaria
SELECT LOWER(CHAR(72, 105)) AS binary_string,
LOWER(CHAR(72, 105 USING utf8mb4)) AS text_string;Detalles
Sin USING, el resultado es una cadena binaria (CHARSET(CHAR(72)) devuelve binary): las comparaciones con ella se hacen byte a byte y distinguen mayúsculas y minúsculas, y LOWER y UPPER no la modifican. Para obtener texto normal, indica una codificación: CHAR(72, 105 USING utf8mb4).
Para las letras latinas, las cifras y los signos de puntuación, el código coincide con el código ASCII; por ejemplo, 65 es una A. Cada código define un byte, no un carácter: una letra cirílica ocupa dos bytes en utf8mb4, por eso «п» es CHAR(208, 191 USING utf8mb4). Un código mayor que 255 se escribe con varios bytes: CHAR(256) equivale a CHAR(1, 0).