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

3 cách để “Unhex” một chuỗi trong MySQL

MySQL bao gồm các chức năng khác nhau có thể hỗ trợ bạn khi làm việc với các giá trị thập lục phân. Một trong những hàm rõ ràng nhất là HEX() , cho phép bạn chuyển đổi một chuỗi thành chuỗi thập lục phân tương đương.

Tuy nhiên, có thể đôi khi bạn muốn chuyển đổi một chuỗi thập lục phân trở lại thành một chuỗi dễ đọc hơn. Đó là nội dung của bài viết này.

Dưới đây là ba cách để "làm hỏng" một chuỗi trong MySQL:

  • UNHEX() chức năng
  • X ký hiệu thập lục phân
  • 0x ký hiệu

Dưới đây là các ví dụ về từng phương pháp này.

Hàm UNHEX ()

Đây là một hàm chuỗi được xây dựng đặc biệt cho "không xử lý" một chuỗi thập lục phân.

Ví dụ:

SELECT UNHEX('4361747320616E6420646F6773');

Kết quả:

+-------------------------------------+
| UNHEX('4361747320616E6420646F6773') |
+-------------------------------------+
| Cats and dogs                       |
+-------------------------------------+

Cách UNHEX() hoạt động là nó diễn giải từng cặp ký tự trong đối số dưới dạng số thập lục phân và chuyển nó thành byte được đại diện bởi số. Giá trị trả về là một chuỗi nhị phân.

Ký hiệu X

Một cách thay thế để giải mã chuỗi là sử dụng X ký hiệu.

Ví dụ:

SELECT X'4361747320616E6420646F6773';

Kết quả:

+-------------------------------+
| X'4361747320616E6420646F6773' |
+-------------------------------+
| Cats and dogs                 |
+-------------------------------+

X ký hiệu dựa trên SQL tiêu chuẩn. Ký hiệu này không phân biệt chữ hoa chữ thường, vì vậy bạn có sử dụng chữ hoa X hay không cũng không thành vấn đề. hoặc chữ thường. Điều này trái ngược với 0x ký hiệu phân biệt chữ hoa chữ thường.

Lưu ý rằng X ký hiệu yêu cầu một số chẵn các chữ số. Nếu bạn có một số lẻ các chữ số, bạn có thể đặt nó bằng một số 0 ở đầu.

Kí hiệu 0x

Và cách thứ ba để hủy một chuỗi là sử dụng 0x ký hiệu.

Ví dụ:

SELECT 0x4361747320616E6420646F6773;

Kết quả:

+------------------------------+
| 0x4361747320616E6420646F6773 |
+------------------------------+
| Cats and dogs                |
+------------------------------+

0x ký hiệu dựa trên ODBC, mà các chuỗi thập lục phân thường được sử dụng để cung cấp giá trị cho các cột BLOB. Như đã đề cập, 0x ký hiệu phân biệt chữ hoa chữ thường, vì vậy nó sẽ không hoạt động nếu bạn sử dụng chữ hoa X .

0x ký hiệu không hoạt động với một số lẻ các chữ số, nhưng chỉ vì nó sẽ giải thích bất kỳ số lẻ nào có số 0 đứng đầu (do đó làm cho nó chẵn).

Bỏ hộp số

Lưu ý rằng anh ấy HEX() chức năng không hoạt động trên số. Để làm điều đó, hãy sử dụng CONV() thay vào đó là hàm (xem Cách gỡ bỏ một số trong MySQL).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về DATEDIFF () - MySQL

  2. Lỗi MySQL 1093 - Không thể chỉ định bảng đích để cập nhật trong mệnh đề FROM

  3. Tôi cần trang PHP của mình để hiển thị hình ảnh BLOB của tôi từ cơ sở dữ liệu mysql

  4. Cách cài đặt MySQL 8.0 trên CentOS 8 / RHEL 8

  5. Sắp xếp theo thứ tự các giá trị trong câu lệnh select trong mệnh đề trong mysql