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