Trước MySQL 8.0.19, vấn đề mà bạn đang gặp phải không tồn tại. binary-as-hex
tùy chọn máy khách được bật theo mặc định từ MySQL 8.0.19.
Chạy status
hoặc \s
trong MySQL. Bạn sẽ nhận thấy một dòng về dữ liệu nhị phân. Nếu nó được đề cập là hệ thập lục phân, kết quả đầu ra của các hàm như CHAR()
và UNHEX()
sẽ được hiển thị dưới dạng thập lục phân thay vì văn bản bình thường.
Để tránh điều này, bạn có thể sử dụng mệnh đề bộ ký tự USING của 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)
Hoặc, bạn có thể sử dụng --skip-binary-as-hex
. Các bước cần làm trong Windows là:
-
Mở Command Prompt.
-
Thay đổi thư mục. Trong trường hợp của tôi, lệnh là:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
-
Chạy
mysql -u root -p --skip-binary-as-hex
-
Nhập mật khẩu.
-
Bây giờ, kết quả đầu ra của
CHAR()
chức năng sẽ như bạn mong đợi.
Lưu ý :--skip-binary-as-hex
phương pháp hoạt động cho đến khi bạn thoát khỏi MySQL. Bạn cần sử dụng --skip-binary-as-hex
mỗi khi bạn mở MySQL, các giá trị thập lục phân sẽ không được hiển thị.
Bạn có thể tham khảo các liên kết này để biết thêm thông tin:
- 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