sql >> Database >  >> RDS >> Mysql

In MySQL werkt de functie CHAR() raar

Voorafgaand aan MySQL 8.0.19 bestond het probleem waarmee u wordt geconfronteerd niet. binary-as-hex client-optie is standaard ingeschakeld vanaf MySQL 8.0.19.

Voer status uit of \s in MySQL. U ziet een regel over binaire gegevens. Als het wordt vermeld als hexadecimaal, uitgangen van functies zoals CHAR() en UNHEX() wordt weergegeven als hexadecimaal in plaats van normale tekst.

Om dit te voorkomen kun je de USING karakterset-clausule van CHAR() . gebruiken .

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)

Of u kunt --skip-binary-as-hex . gebruiken . De te volgen stappen in Windows zijn:

  1. Opdrachtprompt openen.

  2. Wijzig de map. In mijn geval was het commando:

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

    mysql -u root -p --skip-binary-as-hex
    
  4. Voer het wachtwoord in.

  5. Nu, de outputs van CHAR() functie zal zijn zoals u verwacht.

Opmerking :De --skip-binary-as-hex methode werkt totdat u MySQL afsluit. U moet --skip-binary-as-hex . gebruiken methode elke keer dat u MySQL opent, zodat hexadecimale waarden niet worden weergegeven.

U kunt deze links raadplegen voor meer informatie:



  1. C# MySql GEBRUIKER MAKEN

  2. Hoe de mediaan te berekenen in MySQL

  3. Hoe de Where-clausule te gebruiken in Select-instructie in SQL Server - SQL Server / TSQL-zelfstudie, deel 109

  4. Onverwacht de PHP-geheugenlimiet bereiken met een enkele PDO-query?