Przed MySQL 8.0.19 problem, z którym się zmagasz, nie istniał. binary-as-hex opcja klienta jest domyślnie włączona w MySQL 8.0.19.
Uruchom status lub \s w MySQL. Zauważysz linię dotyczącą danych binarnych. Jeśli jest wymieniony jako szesnastkowy, wyjścia funkcji takich jak CHAR() i UNHEX() zostanie wyświetlony w postaci szesnastkowej zamiast normalnego tekstu.
Aby tego uniknąć, możesz użyć klauzuli USING charset funkcji 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)
Lub możesz użyć --skip-binary-as-hex . W systemie Windows należy wykonać następujące czynności:
-
Otwórz wiersz polecenia.
-
Zmień katalog. W moim przypadku polecenie brzmiało:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" -
Uruchom
mysql -u root -p --skip-binary-as-hex -
Wprowadź hasło.
-
Teraz dane wyjściowe
CHAR()funkcja będzie taka, jakiej oczekujesz.
Uwaga :--skip-binary-as-hex metoda działa, dopóki nie wyjdziesz z MySQL. Musisz użyć --skip-binary-as-hex za każdym razem, gdy otworzysz MySQL, tak że wartości szesnastkowe nie będą wyświetlane.
Możesz skorzystać z tych linków, aby uzyskać więcej informacji:
- 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