Før MySQL 8.0.19 eksisterede det problem, du står over for, ikke. binary-as-hex
klientindstillingen er aktiveret som standard fra MySQL 8.0.19.
Kør status
eller \s
i MySQL. Du vil bemærke en linje om binære data. Hvis det er nævnt som hexadecimalt, output af funktioner som CHAR()
og UNHEX()
vises som hexadecimal i stedet for normal tekst.
For at undgå dette kan du bruge USING charset-sætningen af 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)
Eller du kan bruge --skip-binary-as-hex
. De trin, der skal følges i Windows, er:
-
Åbn kommandoprompt.
-
Skift bibliotek. I mit tilfælde var kommandoen:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
-
Kør
mysql -u root -p --skip-binary-as-hex
-
Indtast adgangskoden.
-
Nu, udgangene af
CHAR()
funktion bliver, som du forventer, at den skal være.
Bemærk :--skip-binary-as-hex
metoden virker, indtil du afslutter MySQL. Du skal bruge --skip-binary-as-hex
metode, hver gang du åbner MySQL, således at hexadecimale værdier ikke vises.
Du kan henvise til disse links for mere information:
- https://dev.mysql. com/doc/refman/8.0/en/string-functions.html#function_char
- https://dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html#option_mysql_binary-as-hex