Referencia de funciones

CHAR

Equivalente en PostgreSQL:

Devuelve una cadena formada por los bytes con los códigos indicados.

MySQL 8.4
CHAR(num[, ...] [USING charset])
  • [ ]parte opcional
  • ...se puede repetir
num
Código de byte; un número mayor que 255 da varios bytes
INT
USING charset
Leer los bytes como cadena en la codificación indicada; sin USING, una cadena binaria
Opcional
charset
Codificación, por ejemplo utf8mb4
Palabra clave
armscii8asciibig5binarycp1250cp1251cp1256cp1257cp850cp852cp866cp932dec8eucjpmseuckrgb18030gb2312gbkgeostd8greekhebrewhp8keybcs2koi8rkoi8ulatin1latin2latin5latin7maccemacromansjisswe7tis620ucs2ujisutf16utf16leutf32utf8mb3utf8mb4

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

MySQL 8.4
SELECT CHAR(72, 105);
CHAR(72, 105)
Hi

Omitir NULL entre los códigos

MySQL 8.4
SELECT CHAR(83, NULL, 81, 76);
CHAR(83, NULL, 81, 76)
SQL

Letra cirílica a partir de bytes UTF-8

MySQL 8.4
SELECT CHAR(208, 191 USING utf8mb4) AS letter;
letter
п

LOWER no modifica una cadena binaria

MySQL 8.4
SELECT LOWER(CHAR(72, 105)) AS binary_string,
	LOWER(CHAR(72, 105 USING utf8mb4)) AS text_string;
binary_stringtext_string
Hihi

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).

Véase también