Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Trong MySQL, hàm CHAR () hoạt động kỳ lạ

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()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à:

  1. Mở Command Prompt.

  2. 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"
    
  3. Chạy

    mysql -u root -p --skip-binary-as-hex
    
  4. Nhập mật khẩu.

  5. 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:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích hoạt truy vấn SQL khi nhấp vào nút?

  2. Mysql:Thiết lập định dạng DATETIME thành 'DD-MM-YYYY HH:MM:SS' khi tạo bảng

  3. Spring, Hibernate, Blob lazy loading

  4. Cấu trúc / Thiết kế Cơ sở dữ liệu

  5. MySQL và PDO:Có thể PDO ::lastInsertId về mặt lý thuyết không?