sql >> Base de Datos >  >> RDS >> Mysql

Ejemplos de CHAR() en MySQL

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            |
+----------------+-----------------+----------------+-----------------+