En MySQL, el CHAR()
La función devuelve el carácter de cada entero pasado. En otras palabras, puede pasar uno o más enteros, y la función los interpretará como valores de código para caracteres de cadena y devolverá la cadena correspondiente para cada valor de código.
Sintaxis
La sintaxis es así:
CHAR(N,... [USING charset_name])
Donde N,...
es uno o más enteros, y USING charset_name
es un argumento opcional que puede usar para especificar el juego de caracteres a usar.
Ejemplo 1:uso básico
Aquí hay un ejemplo para demostrar el uso básico:
SELECT CHAR(67, 97, 116);
Resultado:
+-------------------+ | CHAR(67, 97, 116) | +-------------------+ | Cat | +-------------------+
Entonces, si cambiamos uno de los enteros, obtenemos una cadena diferente:
SELECT CHAR(66, 97, 116);
Resultado:
+-------------------+ | CHAR(66, 97, 116) | +-------------------+ | Bat | +-------------------+
Ejemplo 2:la cláusula USING
Aquí hay un ejemplo de cómo agregar USING
cláusula para especificar la codificación UTF-8:
SELECT CHAR(0xc2a9 USING utf8);
Resultado:
+-------------------------+ | CHAR(0xc2a9 USING utf8) | +-------------------------+ | © | +-------------------------+
Y aquí hay otro ejemplo donde especifico el punto de código Unicode:
SELECT CHAR(0x027FE USING ucs2);
Resultado:
+--------------------------+ | CHAR(0x027FE USING ucs2) | +--------------------------+ | ⟾ | +--------------------------+
Ejemplo 3:varios bytes de resultados
Los argumentos mayores de 255 se convierten en múltiples bytes de resultado. Aquí hay un ejemplo para demostrarlo.
SELECT HEX(CHAR(1,0)), HEX(CHAR(256)), HEX(CHAR(1,1)), HEX(CHAR(257));
Resultado:
+----------------+----------------+----------------+----------------+ | HEX(CHAR(1,0)) | HEX(CHAR(256)) | HEX(CHAR(1,1)) | HEX(CHAR(257)) | +----------------+----------------+----------------+----------------+ | 0100 | 0100 | 0101 | 0101 | +----------------+----------------+----------------+----------------+
Y si aumentamos los números:
SELECT HEX(CHAR(7,0)), HEX(CHAR(1792)), HEX(CHAR(7,7)), HEX(CHAR(1799));
Resultado:
+----------------+-----------------+----------------+-----------------+ | HEX(CHAR(7,0)) | HEX(CHAR(1792)) | HEX(CHAR(7,7)) | HEX(CHAR(1799)) | +----------------+-----------------+----------------+-----------------+ | 0700 | 0700 | 0707 | 0707 | +----------------+-----------------+----------------+-----------------+