Před MySQL 8.0.19 problém, kterému čelíte, neexistoval. binary-as-hex
možnost klienta je standardně povolena od MySQL 8.0.19.
Spusťte status
nebo \s
v MySQL. Všimnete si řádku o binárních datech. Pokud je uvedeno jako hexadecimální, výstupy funkcí jako CHAR()
a UNHEX()
se zobrazí jako hexadecimální místo normálního textu.
Abyste tomu zabránili, můžete použít klauzuli USING znakové sady 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)
Nebo můžete použít --skip-binary-as-hex
. V systému Windows je třeba postupovat takto:
-
Otevřete příkazový řádek.
-
Změňte adresář. V mém případě byl příkaz:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
-
Spustit
mysql -u root -p --skip-binary-as-hex
-
Zadejte heslo.
-
Nyní výstupy
CHAR()
funkce bude taková, jakou očekáváte.
Poznámka :--skip-binary-as-hex
metoda funguje, dokud neukončíte MySQL. Musíte použít --skip-binary-as-hex
při každém otevření MySQL tak, aby se hexadecimální hodnoty nezobrazovaly.
Další informace naleznete na těchto odkazech:
- 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