Trong MariaDB, UNHEX()
là một hàm chuỗi tích hợp thực hiện thao tác nghịch đảo của HEX()
chức năng.
Trong khi đó, HEX()
hàm trả về một biểu diễn thập lục phân của một chuỗi nhất định, UNHEX()
hàm trả về biểu diễn chuỗi của một giá trị thập lục phân nhất định.
Cụ thể, UNHEX()
diễn giải từng cặp chữ số thập lục phân trong đối số của nó dưới dạng số, sau đó chuyển nó thành ký tự được đại diện bởi số.
Kết quả được trả về dưới dạng một chuỗi nhị phân.
Cú pháp
Cú pháp như sau:
UNHEX(str)
Ở đâu str
là giá trị thập lục phân là "chưa xử lý".
Ví dụ
Đây là một ví dụ cơ bản:
SELECT UNHEX('61');
Kết quả:
+-------------+ | UNHEX('61') | +-------------+ | a | +-------------+
Biểu diễn hệ thập lục phân của chữ thường a
là 61
và như vậy bằng cách chuyển 61
tới UNHEX()
, chúng ta nhận được ký tự viết thường a
.
Dưới đây là một ví dụ chạy qua một vài giá trị thập lục phân khác:
SELECT
UNHEX('61'),
UNHEX('6161'),
UNHEX('41'),
UNHEX('4141'),
UNHEX('62'),
UNHEX('6262'),
UNHEX('42'),
UNHEX('4242'),
UNHEX('436174'),
UNHEX('446F67'),
UNHEX('50617773202620436C617773'),
UNHEX('5A65627261');
Kết quả (sử dụng đầu ra dọc):
UNHEX('61'): a UNHEX('6161'): aa UNHEX('41'): A UNHEX('4141'): AA UNHEX('62'): b UNHEX('6262'): bb UNHEX('42'): B UNHEX('4242'): BB UNHEX('436174'): Cat UNHEX('446F67'): Dog UNHEX('50617773202620436C617773'): Paws & Claws UNHEX('5A65627261'): Zebra
So với HEX()
Đây là một ví dụ tổ chức HEX()
bên trong UNHEX()
để trả về chuỗi ban đầu:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Kết quả:
+--------------------+-------------------------+ | HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) | +--------------------+-------------------------+ | 486F6D6572204A6179 | Homer Jay | +--------------------+-------------------------+
Tuy nhiên, hãy nhớ rằng UNHEX()
trả về kết quả của nó dưới dạng một chuỗi nhị phân:
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";
Kết quả:
+-----------------+-----------------+---------+ | Literal | HEX() | UNHEX() | +-----------------+-----------------+---------+ | utf8_general_ci | utf8_general_ci | binary | +-----------------+-----------------+---------+
Đối số rỗng
Chuyển null
thành UNHEX()
kết quả là null
:
SELECT UNHEX(null);
Kết quả:
+-------------+ | UNHEX(null) | +-------------+ | NULL | +-------------+
Không tranh luận
Gọi UNHEX()
mà không chuyển bất kỳ đối số nào dẫn đến lỗi:
SELECT UNHEX();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'