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

En MySQL, la función CHAR() funciona de forma extraña

Antes de MySQL 8.0.19, el problema al que se enfrenta no existía. binary-as-hex La opción de cliente está habilitada de forma predeterminada desde MySQL 8.0.19.

Ejecutar status o \s en MySQL. Notará una línea sobre datos binarios. Si se menciona como hexadecimal, salidas de funciones como CHAR() y UNHEX() se mostrará como hexadecimal en lugar de texto normal.

Para evitar esto, puede usar la cláusula USING charset de CHAR() .

mysql> SELECT CHAR(97);
+--------------------+
| CHAR(97)           |
+--------------------+
| 0x61               |
+--------------------+
1 row in set (0.00 sec)

mysql> SELECT CHAR(97 USING utf8mb4);
+------------------------+
| CHAR(97 USING utf8mb4) |
+------------------------+
| a                      |
+------------------------+
1 row in set (0.00 sec)

O bien, puede usar --skip-binary-as-hex . Los pasos a seguir en Windows son:

  1. Abra el símbolo del sistema.

  2. Cambia el directorio. En mi caso el comando fue:

    cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
    
  3. Ejecutar

    mysql -u root -p --skip-binary-as-hex
    
  4. Introduzca la contraseña.

  5. Ahora, las salidas de CHAR() la función será como usted espera que sea.

Nota :El --skip-binary-as-hex El método funciona hasta que salga de MySQL. Debe usar --skip-binary-as-hex método cada vez que abra MySQL de modo que no se muestren los valores hexadecimales.

Puede consultar estos enlaces para obtener más información: